Grpc.Core.Internal.GrpcThreadPool.RunHandlerLoop C# (CSharp) Méthode

RunHandlerLoop() private méthode

Body of the polling thread.
private RunHandlerLoop ( CompletionQueueSafeHandle cq, IProfiler optionalProfiler ) : void
cq CompletionQueueSafeHandle
optionalProfiler IProfiler
Résultat void
        private void RunHandlerLoop(CompletionQueueSafeHandle cq, IProfiler optionalProfiler)
        {
            if (optionalProfiler != null)
            {
                Profilers.SetForCurrentThread(optionalProfiler);
            }

            CompletionQueueEvent ev;
            do
            {
                ev = cq.Next();
                if (ev.type == CompletionQueueEvent.CompletionType.OpComplete)
                {
                    bool success = (ev.success != 0);
                    IntPtr tag = ev.tag;
                    try
                    {
                        var callback = cq.CompletionRegistry.Extract(tag);
                        callback(success);
                    }
                    catch (Exception e)
                    {
                        Logger.Error(e, "Exception occured while invoking completion delegate");
                    }
                }
            }
            while (ev.type != CompletionQueueEvent.CompletionType.Shutdown);
        }