using System; using System.Runtime.Remoting.Messaging; namespace System.Runtime.Remoting.Contexts { // Token: 0x020003CC RID: 972 internal class SynchronizedServerContextSink : IMessageSink { // Token: 0x0600264A RID: 9802 RVA: 0x0007E4BC File Offset: 0x0007C6BC public SynchronizedServerContextSink(IMessageSink next, SynchronizationAttribute att) { this._att = att; this._next = next; } // Token: 0x17000728 RID: 1832 // (get) Token: 0x0600264B RID: 9803 RVA: 0x0007E4D4 File Offset: 0x0007C6D4 public IMessageSink NextSink { get { return this._next; } } // Token: 0x0600264C RID: 9804 RVA: 0x0007E4DC File Offset: 0x0007C6DC public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink) { this._att.AcquireLock(); replySink = new SynchronizedContextReplySink(replySink, this._att, false); return this._next.AsyncProcessMessage(msg, replySink); } // Token: 0x0600264D RID: 9805 RVA: 0x0007E508 File Offset: 0x0007C708 public IMessage SyncProcessMessage(IMessage msg) { this._att.AcquireLock(); IMessage message; try { message = this._next.SyncProcessMessage(msg); } finally { this._att.ReleaseLock(); } return message; } // Token: 0x04000EEE RID: 3822 private IMessageSink _next; // Token: 0x04000EEF RID: 3823 private SynchronizationAttribute _att; } }