Full text of exception:
EventSourceException: there are no free buffers available from the operating room (for example, the event rate is too high)
I call this method about a million times due to recursion. This does not stop, I just get the exception text in the "Debug Output" window in VS2013. But it is very slow.
private static IEnumerable<string> RecursiveFindServices(ISymbol sym, Solution sln) { List<string> list = new List<string>(); var callers = SymbolFinder.FindCallersAsync(sym, sln).Result; // this line may cause the EventSourceException (try not to call Async) foreach(var caller in callers) { string name = GetMethodName(caller); if (caller.CallingSymbol.ContainingType.Name.EndsWith("Test")) continue; if (recursiveList.Contains(name)) continue; recursiveList.Add(name); if (IsWebservice(caller)) list.Add(name); else list.AddRange(RecursiveFindServices(caller.CallingSymbol, sln)); } return list; }
Does anyone know what this exception means and how to fix it. I assume that slow speed is associated with this exception.
IsWebservice() and GetMethodName() are pure string methods.
I am running Roslyn in a VS2013 project under .NET 4.5.2, can this be related to this? I just installed this nuget package
PM> Install-Package Microsoft.CodeAnalysis
And then I had to copy and include the following files in the project.
Microsoft.Build.Conversion.Core.dll (File Version 14.0) Microsoft.Build.dll (File Version 14.0) Microsoft.Build.Engine.dll (File Version 14.0) Microsoft.Build.Framework.dll (File Version 14.0) Microsoft.Build.Tasks.Core.dll (File Version 14.0) Microsoft.Build.Utilities.Core.dll (File Version 14.0) System.Threading.Tasks.Dataflow.dll (File Version 4.5.24)
Any ideal to speed up the code or find the root cause of the exception will be helpful. // Thanks: -)
source share