// This will set the underlying OS handle to be nonblocking, for whatever reason -- // performing an async operation or using a timeout will cause this to happen. // Once the OS handle is nonblocking, it never transitions back to blocking. private void SetHandleNonBlocking() { // We don't care about synchronization because this is idempotent if (!_underlyingHandleNonBlocking) { AsyncContext.SetNonBlocking(); _underlyingHandleNonBlocking = true; } }
public void SetNonBlocking() { _asyncContext.SetNonBlocking(); }