private ConnectionCancellation GetCreatedConnectionCancellation(ulong connectionId) { // Race condition on creation has no side effects var cancellation = new ConnectionCancellation(this); return(_connectionCancellationTokens.GetOrAdd(connectionId, cancellation)); }
internal CancellationToken GetDisconnectToken(HttpListenerContext context) { if (_connectionIdField == null || _requestQueueHandle == null) { return(CancellationToken.None); } var connectionId = (ulong)_connectionIdField.GetValue(context.Request); ConnectionCancellation cancellation = GetConnectionCancellation(connectionId); return(cancellation.GetCancellationToken(this, connectionId)); }
public void Dispose() { Logger.LogDebug("Shutting down StreamController"); ConnectionCancellation.Cancel(); DisposeModel(); CancelValidationMessages(); Dispatcher.Tell(new DisposeMessage()); Self.Tell(new DisconnectedMessage { IDConnection = StreamConnection?.GetHashCode() }); Logger.LogInformation("StreamController correctly disposed"); }
private ConnectionCancellation GetCreatedConnectionCancellation(ulong connectionId) { // Race condition on creation has no side effects var cancellation = new ConnectionCancellation(); return _connectionCancellationTokens.GetOrAdd(connectionId, cancellation); }