text: public void sync() {boolean interrupted = false;try {while (true) {MergeThread toSync = null;synchronized (this) {for (MergeThread t : mergeThreads) {if (t.isAlive() && t != Thread.currentThread()) {toSync = t;break;}}}if (toSync != null) {try {toSync.join();} catch (InterruptedException ie) {interrupted = true;}} else {break;}}} finally {if (interrupted) Thread.currentThread().interrupt();}}