示例#1
0
 internal override EarliestFirstSystemMessageList SystemDrain(LatestFirstSystemMessageList newContents)
 {
     return SystemMessageList.ENil;
 }
示例#2
0
 private LatestFirstSystemMessageList UnstashAll()
 {
     var unstashed = _sysMsgStash;
     _sysMsgStash = SystemMessageList.LNil;
     return unstashed;
 }
示例#3
0
 public void SendSystemMessage(ISystemMessage message)
 {
     lock (_lock)
     {
         var cell = _self.Underlying;
         if (CellIsReady(cell))
         {
             cell.SendSystemMessage(message);
         }
         else
         {
             _sysMsgQueue = _sysMsgQueue + (SystemMessage)message;
             Mailbox.DebugPrint("{0} temp queueing system message {1}", Self, message);
         }
     }
 }
示例#4
0
 protected void Stash(SystemMessage msg)
 {
     Assert.Assert(msg.Unlinked);
     _sysMsgStash = _sysMsgStash + msg;
 }
示例#5
0
 private void DrainSysMsgQueue(ICell cell)
 {
     while (_sysMsgQueue.NonEmpty)
     {
         var sysQ = _sysMsgQueue.Reverse;
         _sysMsgQueue = SystemMessageList.LNil;
         while (sysQ.NonEmpty)
         {
             var msg = sysQ.Head;
             sysQ = sysQ.Tail;
             msg.Unlink();
             cell.SendSystemMessage(msg);
         }
     }
 }