コード例 #1
0
ファイル: Resource.cs プロジェクト: JustinBritt/Sage
        public void Unreserve(IResourceRequest request)
        {
            IResource originator = m_wrappedByWhom ?? this;

            RequestEvent?.Invoke(request, originator);
            lock (this) {
                AttemptReturnToService(request);
                request.ResourceObtainedFrom = null;
            }
            UnreservedEvent?.Invoke(request, originator);
        }
コード例 #2
0
 /// <summary>
 /// Unreserves the specified request. Returns it to availability.
 /// </summary>
 /// <param name="request">The request.</param>
 public void Unreserve(IResourceRequest request)
 {
     lock (this) {
         DoRollback(request);
         UnreservedEvent?.Invoke(request, this);
         ResourceUnreserved?.Invoke(request, this);
     }
     while (m_waiters.Count > 0)
     {
         IDetachableEventController dec = (IDetachableEventController)m_waiters[0];
         m_waiters.RemoveAt(0);
         dec.Resume();
     }
 }