69 lines
1.4 KiB
C#
69 lines
1.4 KiB
C#
using System;
|
|
using System.Runtime.Remoting.Messaging;
|
|
|
|
namespace System.Runtime.Remoting.Contexts
|
|
{
|
|
// Token: 0x020003CD RID: 973
|
|
internal class SynchronizedContextReplySink : IMessageSink
|
|
{
|
|
// Token: 0x0600264E RID: 9806 RVA: 0x0007E560 File Offset: 0x0007C760
|
|
public SynchronizedContextReplySink(IMessageSink next, SynchronizationAttribute att, bool newLock)
|
|
{
|
|
this._newLock = newLock;
|
|
this._next = next;
|
|
this._att = att;
|
|
}
|
|
|
|
// Token: 0x17000729 RID: 1833
|
|
// (get) Token: 0x0600264F RID: 9807 RVA: 0x0007E580 File Offset: 0x0007C780
|
|
public IMessageSink NextSink
|
|
{
|
|
get
|
|
{
|
|
return this._next;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002650 RID: 9808 RVA: 0x0007E588 File Offset: 0x0007C788
|
|
public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink)
|
|
{
|
|
throw new NotSupportedException();
|
|
}
|
|
|
|
// Token: 0x06002651 RID: 9809 RVA: 0x0007E590 File Offset: 0x0007C790
|
|
public IMessage SyncProcessMessage(IMessage msg)
|
|
{
|
|
if (this._newLock)
|
|
{
|
|
this._att.AcquireLock();
|
|
}
|
|
else
|
|
{
|
|
this._att.ReleaseLock();
|
|
}
|
|
IMessage message;
|
|
try
|
|
{
|
|
message = this._next.SyncProcessMessage(msg);
|
|
}
|
|
finally
|
|
{
|
|
if (this._newLock)
|
|
{
|
|
this._att.ReleaseLock();
|
|
}
|
|
}
|
|
return message;
|
|
}
|
|
|
|
// Token: 0x04000EF0 RID: 3824
|
|
private IMessageSink _next;
|
|
|
|
// Token: 0x04000EF1 RID: 3825
|
|
private bool _newLock;
|
|
|
|
// Token: 0x04000EF2 RID: 3826
|
|
private SynchronizationAttribute _att;
|
|
}
|
|
}
|