Lucene.Net.Index.IndexWriter.UpdatePendingMerges C# (CSharp) Method

UpdatePendingMerges() private method

private UpdatePendingMerges ( int maxNumSegmentsOptimize, bool optimize ) : void
maxNumSegmentsOptimize int
optimize bool
return void
		private void  UpdatePendingMerges(int maxNumSegmentsOptimize, bool optimize)
		{
			lock (this)
			{
				System.Diagnostics.Debug.Assert(!optimize || maxNumSegmentsOptimize > 0);

                if (stopMerges)
                {
                    return;
                }
				
				// Do not start new merges if we've hit OOME
				if (hitOOM)
				{
					return ;
				}
				
				MergePolicy.MergeSpecification spec;
                if (optimize)
                {
                    spec = mergePolicy.FindMergesForOptimize(segmentInfos, maxNumSegmentsOptimize, segmentsToOptimize);

                    if (spec != null)
                    {
                        int numMerges = spec.merges.Count;
                        for (int i = 0; i < numMerges; i++)
                        {
                            MergePolicy.OneMerge merge = spec.merges[i];
                            merge.optimize = true;
                            merge.maxNumSegmentsOptimize = maxNumSegmentsOptimize;
                        }
                    }
                }
                else
                {
                    spec = mergePolicy.FindMerges(segmentInfos);
                }

			    if (spec != null)
				{
					int numMerges = spec.merges.Count;
					for (int i = 0; i < numMerges; i++)
						RegisterMerge(spec.merges[i]);
				}
			}
		}
		
IndexWriter