First Impl of AwaitableCriticalSection