public virtual void Sync()
{
lock (this)
{
while (MergeThreadCount() > 0)
{
if (Verbose())
Message("now wait for threads; currently " + mergeThreads.Count + " still running");
int count = mergeThreads.Count;
if (Verbose())
{
for (int i = 0; i < count; i++)
Message(" " + i + ": " + mergeThreads[i]);
}
System.Threading.Monitor.Wait(this);
}
}
}
private void Crash(IndexWriter writer) { MockDirectoryWrapper dir = (MockDirectoryWrapper)writer.Directory; ConcurrentMergeScheduler cms = (ConcurrentMergeScheduler)writer.Config.MergeScheduler; cms.Sync(); dir.Crash(); cms.Sync(); dir.ClearCrash(); }