This is a partial fix for 1097123.
The most immediate issue here is cancellation of the CancellationToken passed to AsyncQueue<T> will unconditionally call TaskCompletionSource.SetResult for the main Task value in the queue. This cancellation can happen long after or in parallel with the completion of AsyncQueue<T>. When this happens an exception is thrown. This exception is causing the VBCSCompiler process to crash because it expects cancelling a token to be a safe operation. Longer term there are other issues in AsyncQueue<T> that need to be fixed (several race conditions). Once this is checked in I willmove 1097123 to a Pri 1 and track the remaining fixes with that. (changeset 1387407)
Showing
想要评论请 注册 或 登录