private void AwaitAsyncResultCompletion(DeflateStreamAsyncResult asyncResult)
{
try {
if (!asyncResult.IsCompleted)
{
asyncResult.AsyncWaitHandle.WaitOne();
}
} finally {
Interlocked.Decrement(ref asyncOperations);
asyncResult.Close(); // this will just close the wait handle
}
}