Example #1
0
 public IMessage SyncProcessMessage(IMessage msg)
 {
     if (_att.IsReEntrant)
     {
         _att.ReleaseLock();                     // Unlock when leaving the context
     }
     try
     {
         return(_next.SyncProcessMessage(msg));
     }
     finally
     {
         if (_att.IsReEntrant)
         {
             _att.AcquireLock();
         }
     }
 }
Example #2
0
        public IMessage SyncProcessMessage(IMessage msg)
        {
            if (_newLock)
            {
                _att.AcquireLock();
            }
            else
            {
                _att.ReleaseLock();
            }

            try
            {
                return(_next.SyncProcessMessage(msg));
            }
            finally
            {
                if (_newLock)
                {
                    _att.ReleaseLock();
                }
            }
        }
Example #3
0
 public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink)
 {
     _att.AcquireLock();
     replySink = new SynchronizedContextReplySink(replySink, _att, false);
     return(_next.AsyncProcessMessage(msg, replySink));
 }