private MosaMethod CompilerMethodInQueue(int threadID = 0) { var method = CompilationScheduler.GetMethodToCompile(); if (method == null) { return(null); } return(CompileMethod(method, threadID)); }
private void ExecuteCompilePass() { while (true) { var method = CompilationScheduler.GetMethodToCompile(); if (method == null) { return; } CompileMethod(method, null, 0); CompilerTrace.UpdatedCompilerProgress( CompilationScheduler.TotalMethods, CompilationScheduler.TotalMethods - CompilationScheduler.TotalQueuedMethods ); } }
private void CompileWorker(int threadID) { while (true) { var method = CompilationScheduler.GetMethodToCompile(); if (method == null) { return; } // only one method can be compiled at a time lock (method) { CompileMethod(method, null, threadID); } CompilerTrace.UpdatedCompilerProgress(CompilationScheduler.TotalMethods, CompilationScheduler.TotalMethods - CompilationScheduler.TotalQueuedMethods); } }