// Token: 0x06000ADA RID: 2778 RVA: 0x00046E2C File Offset: 0x0004502C internal void EnqueueMailbox(MailboxInfo mailbox, MailboxSession mailboxSession) { ExTraceGlobals.MWITracer.TraceDebug <MailboxInfo, MailboxSession>((long)this.GetHashCode(), "MwiDelayTable.EnqueueMailbox({0}, {1})", mailbox, mailboxSession); bool flag = false; MwiDelayTable.DelayTableEntry delayTableEntry; lock (this) { if (!this.delayTable.TryGetValue(mailbox.Guid, out delayTableEntry)) { ExTraceGlobals.MWITracer.TraceDebug <MailboxInfo>((long)this.GetHashCode(), "MwiDelayTable: Mailbox {0} not present, processing now", mailbox); flag = true; delayTableEntry = new MwiDelayTable.DelayTableEntry(mailbox); this.delayTable[mailbox.Guid] = delayTableEntry; } else { ExTraceGlobals.MWITracer.TraceDebug <MailboxInfo>((long)this.GetHashCode(), "MwiDelayTable: Mailbox {0} already present->ProcessWhenExpired=true.", mailbox); delayTableEntry.ProcessWhenExpired = true; } } if (flag) { this.ProcessEntryAndAddToDelayQueue(delayTableEntry, mailboxSession); } }
// Token: 0x06000ADC RID: 2780 RVA: 0x000470AC File Offset: 0x000452AC private void ProcessEntryAndAddToDelayQueue(MwiDelayTable.DelayTableEntry entry, MailboxSession mailboxSession) { ExTraceGlobals.MWITracer.TraceDebug <MailboxInfo>((long)this.GetHashCode(), "MwiDelayTable.ProcessEntryAndAddToDelayQueue: Processing {0}", entry.Mailbox); this.processMailboxCallback(entry.Mailbox, mailboxSession); lock (this) { ExTraceGlobals.MWITracer.TraceDebug <MailboxInfo>((long)this.GetHashCode(), "MwiDelayTable.ProcessEntryAndAddToDelayQueue: Adding {0} to delay queue.", entry.Mailbox); this.delayQueue.Enqueue(entry); } }