public static void RunWithLock (object locker, Func<SimpleAsyncResult, bool> func, SimpleAsyncCallback callback) { Run (inner => { bool running = func (inner); if (running) Monitor.Exit (locker); return running; }, inner => { if (inner.GotException) { if (inner.synch) Monitor.Exit (locker); callback (inner); return; } try { if (!inner.synch) Monitor.Enter (locker); callback (inner); } finally { Monitor.Exit (locker); } }); }
public static SimpleAsyncResult RunWithLock (object locker, SimpleAsyncFunc func, SimpleAsyncCallback callback) { return Run (inner => { bool running = func (inner); if (running) Monitor.Exit (locker); return running; }, inner => { if (inner.GotException) { if (inner.CompletedSynchronously) Monitor.Exit (locker); callback (inner); return; } try { if (!inner.CompletedSynchronously) Monitor.Enter (locker); callback (inner); } finally { Monitor.Exit (locker); } }); }
public static void RunWithLock(object locker, SimpleAsyncFunc func, SimpleAsyncCallback callback) { Run(inner => { bool running = func(inner); if (running) { Monitor.Exit(locker); } return(running); }, inner => { if (inner.GotException) { if (inner.CompletedSynchronously) { Monitor.Exit(locker); } callback(inner); return; } try { if (!inner.CompletedSynchronously) { Monitor.Enter(locker); } callback(inner); } finally { Monitor.Exit(locker); } }); }
protected SimpleAsyncResult (AsyncCallback cb, object state) { this.state = state; this.cb = result => { if (cb != null) cb (this); }; }
protected SimpleAsyncResult(AsyncCallback cb, object state) { this.state = state; this.cb = result => { if (cb != null) { cb(this); } }; }
public static void Run (Func<SimpleAsyncResult, bool> func, SimpleAsyncCallback callback) { var result = new SimpleAsyncResult (callback); try { if (!func (result)) result.SetCompleted (true); } catch (Exception ex) { result.SetCompleted (true, ex); } }
public static SimpleAsyncResult Run (SimpleAsyncFunc func, SimpleAsyncCallback callback) { var result = new SimpleAsyncResult (callback); try { if (!func (result)) result.SetCompleted (true); } catch (Exception ex) { result.SetCompleted (true, ex); } return result; }
public static void Run(Func <SimpleAsyncResult, bool> func, SimpleAsyncCallback callback) { var result = new SimpleAsyncResult(callback); try { if (!func(result)) { result.SetCompleted(true); } } catch (Exception ex) { result.SetCompleted(true, ex); } }
internal SimpleAsyncResult WriteRequestAsync(SimpleAsyncCallback callback) { var result = WriteRequestAsync(callback); try { if (!WriteRequestAsync(result)) { result.SetCompleted(true); } } catch (Exception ex) { result.SetCompleted(true, ex); } return(result); }
public static SimpleAsyncResult Run(SimpleAsyncFunc func, SimpleAsyncCallback callback) { var result = new SimpleAsyncResult(callback); try { if (!func(result)) { result.SetCompleted(true); } } catch (Exception ex) { result.SetCompleted(true, ex); } return(result); }
void SetWriteStreamInner (SimpleAsyncCallback callback) { SimpleAsyncResult.Run (result => { if (bodyBuffer != null) { // The body has been written and buffered. The request "user" // won't write it again, so we must do it. if (auth_state.NtlmAuthState != NtlmAuthState.Challenge && proxy_auth_state.NtlmAuthState != NtlmAuthState.Challenge) { // FIXME: this is a blocking call on the thread pool that could lead to thread pool exhaustion writeStream.Write (bodyBuffer, 0, bodyBufferLength); bodyBuffer = null; writeStream.Close (); } } else if (MethodWithBuffer) { if (getResponseCalled && !writeStream.RequestWritten) return writeStream.WriteRequestAsync (result); } return false; }, callback); }
SimpleAsyncResult (SimpleAsyncCallback cb) { this.cb = cb; }
internal SimpleAsyncResult SetHeadersAsync(bool setInternalLength, SimpleAsyncCallback callback) { return(SimpleAsyncResult.Run(r => SetHeadersAsync(r, setInternalLength), callback)); }
public static void RunWithLock(object locker, Func <SimpleAsyncResult, bool> func, SimpleAsyncCallback callback) { Run(inner => { bool running = func(inner); if (running) { Monitor.Exit(locker); } return(running); }, inner => { if (inner.GotException) { if (inner.synch) { Monitor.Exit(locker); } callback(inner); return; } try { if (!inner.synch) { Monitor.Enter(locker); } callback(inner); } finally { Monitor.Exit(locker); } }); }
SimpleAsyncResult(SimpleAsyncCallback cb) { this.cb = cb; }
internal void SetHeadersAsync (bool setInternalLength, SimpleAsyncCallback callback) { SimpleAsyncResult.Run (r => SetHeadersAsync (r, setInternalLength), callback); }
internal SimpleAsyncResult WriteRequestAsync (SimpleAsyncCallback callback) { var result = WriteRequestAsync (callback); try { if (!WriteRequestAsync (result)) result.SetCompleted (true); } catch (Exception ex) { result.SetCompleted (true, ex); } return result; }
internal void SetHeadersAsync(bool setInternalLength, SimpleAsyncCallback callback) { SimpleAsyncResult.Run(r => SetHeadersAsync(r, setInternalLength), callback); }