diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2016-12-27 16:46:08 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2016-12-27 16:46:08 +0900 |
commit | db20f3f1bb8595633a7e16c8900fd401a453a6b5 (patch) | |
tree | e5435159cd1bf0519276363a6fe1663d1721bed3 /src/mscorlib/src/System/Threading/Tasks/future.cs | |
parent | 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (diff) | |
download | coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.tar.gz coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.tar.bz2 coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.zip |
Imported Upstream version 1.0.0.9127upstream/1.0.0.9127
Diffstat (limited to 'src/mscorlib/src/System/Threading/Tasks/future.cs')
-rw-r--r-- | src/mscorlib/src/System/Threading/Tasks/future.cs | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/mscorlib/src/System/Threading/Tasks/future.cs b/src/mscorlib/src/System/Threading/Tasks/future.cs index 39e6ca1d45..0c3fec89b7 100644 --- a/src/mscorlib/src/System/Threading/Tasks/future.cs +++ b/src/mscorlib/src/System/Threading/Tasks/future.cs @@ -65,7 +65,6 @@ namespace System.Threading.Tasks /// and may be used from multiple threads concurrently. /// </para> /// </remarks> - [HostProtection(Synchronization = true, ExternalThreading = true)] [DebuggerTypeProxy(typeof(SystemThreadingTasks_FutureDebugView<>))] [DebuggerDisplay("Id = {Id}, Status = {Status}, Method = {DebuggerDisplayMethodDescription}, Result = {DebuggerDisplayResultDescription}")] public class Task<TResult> : Task @@ -447,7 +446,7 @@ namespace System.Threading.Tasks { get { - Delegate d = (Delegate)m_action; + Delegate d = m_action; return d != null ? d.Method.ToString() : "{null}"; } } @@ -457,7 +456,7 @@ namespace System.Threading.Tasks internal bool TrySetResult(TResult result) { if (IsCompleted) return false; - Contract.Assert(m_action == null, "Task<T>.TrySetResult(): non-null m_action"); + Debug.Assert(m_action == null, "Task<T>.TrySetResult(): non-null m_action"); // "Reserve" the completion for this task, while making sure that: (1) No prior reservation // has been made, (2) The result has not already been set, (3) An exception has not previously @@ -497,7 +496,7 @@ namespace System.Threading.Tasks // the task, avoiding expensive completion paths, before the task is actually given to anyone. internal void DangerousSetResult(TResult result) { - Contract.Assert(!IsCompleted, "The promise must not yet be completed."); + Debug.Assert(!IsCompleted, "The promise must not yet be completed."); // If we have a parent, we need to notify it of the completion. Take the slow path to handle that. if (m_contingentProperties?.m_parent != null) @@ -505,7 +504,7 @@ namespace System.Threading.Tasks bool success = TrySetResult(result); // Nobody else has had a chance to complete this Task yet, so we should succeed. - Contract.Assert(success); + Debug.Assert(success); } else { @@ -539,7 +538,7 @@ namespace System.Threading.Tasks { get { - Contract.Assert(!IsWaitNotificationEnabledOrNotRanToCompletion, + Debug.Assert(!IsWaitNotificationEnabledOrNotRanToCompletion, "Should only be used when the task completed successfully and there's no wait notification enabled"); return m_result; } @@ -558,7 +557,7 @@ namespace System.Threading.Tasks if (!IsRanToCompletion) ThrowIfExceptional(includeTaskCanceledExceptions: true); // We shouldn't be here if the result has not been set. - Contract.Assert(IsRanToCompletion, "Task<T>.Result getter: Expected result to have been set."); + Debug.Assert(IsRanToCompletion, "Task<T>.Result getter: Expected result to have been set."); return m_result; } @@ -572,13 +571,13 @@ namespace System.Threading.Tasks // Called from TaskCompletionSource<T>.SetException(IEnumerable<Exception>). internal bool TrySetException(object exceptionObject) { - Contract.Assert(m_action == null, "Task<T>.TrySetException(): non-null m_action"); + Debug.Assert(m_action == null, "Task<T>.TrySetException(): non-null m_action"); // TCS.{Try}SetException() should have checked for this - Contract.Assert(exceptionObject != null, "Expected non-null exceptionObject argument"); + Debug.Assert(exceptionObject != null, "Expected non-null exceptionObject argument"); // Only accept these types. - Contract.Assert( + Debug.Assert( (exceptionObject is Exception) || (exceptionObject is IEnumerable<Exception>) || (exceptionObject is ExceptionDispatchInfo) || (exceptionObject is IEnumerable<ExceptionDispatchInfo>), "Expected exceptionObject to be either Exception, ExceptionDispatchInfo, or IEnumerable<> of one of those"); @@ -620,10 +619,10 @@ namespace System.Threading.Tasks // This method is only valid for promise tasks. internal bool TrySetCanceled(CancellationToken tokenToRecord, object cancellationException) { - Contract.Assert(m_action == null, "Task<T>.TrySetCanceled(): non-null m_action"); + Debug.Assert(m_action == null, "Task<T>.TrySetCanceled(): non-null m_action"); #if DEBUG var ceAsEdi = cancellationException as ExceptionDispatchInfo; - Contract.Assert( + Debug.Assert( cancellationException == null || cancellationException is OperationCanceledException || (ceAsEdi != null && ceAsEdi.SourceException is OperationCanceledException), @@ -669,7 +668,7 @@ namespace System.Threading.Tasks internal override void InnerInvoke() { // Invoke the delegate - Contract.Assert(m_action != null); + Debug.Assert(m_action != null); var func = m_action as Func<TResult>; if (func != null) { @@ -682,7 +681,7 @@ namespace System.Threading.Tasks m_result = funcWithState(m_stateObject); return; } - Contract.Assert(false, "Invalid m_action in Task<TResult>"); + Debug.Assert(false, "Invalid m_action in Task<TResult>"); } #region Await Support |