public override async Task <SourceFileReply> SourceFile(SourceFileRequest request, ServerCallContext context) { await _semaphoreSlim.WaitAsync(); var reply = new SourceFileReply(); try { ROpsApi.SourceFile(request.PathToCode); reply.Payload = new SourceFilePayload(); } catch (Exception ex) { reply.Error = PopulateError(ex); _logger.LogError(ex, nameof(RunExec)); } finally { _semaphoreSlim.Release(); } return(await Task.FromResult(reply)); }