Changeset 34356 in project


Ignore:
Timestamp:
08/25/17 18:11:13 (4 weeks ago)
Author:
kon
Message:

cannot use w/ timeout, otherwise ok for primordial

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/eggref/4/mailbox

    r34354 r34356  
    217217== Notes
    218218
     219* Cannot wait with timeout on the primordial thread. So {{mailbox-wait!}},
     220{{mailbox-receive!}}, and {{mailbox-cursor-next}} must not be used with a
     221timeout value when the {{(current-thread)}} is the
     222{{##sys#primordial-thread}}.
     223
    219224* A "deadlock" situation is possible when using {{mailbox-wait!}},
    220225{{mailbox-receive!}}, or {{mailbox-cursor-next}} should there be no other
    221 threads "runnable." The problem is when the mailbox is empty the current-thread
    222 is suspended (indefinite block). When the scheduler looks for the next ready
    223 thread and there is not one it signals "deadlock." Using a {{TIMEOUT}} will
    224 allow the calling thread to unblock eventually.
    225 
    226 * Cannot wait with timeout on the primordial thread. So {{mailbox-wait!}},
    227 {{mailbox-receive!}}, and {{mailbox-cursor-next}} must not be used when the
    228 {{(current-thread)}} is the {{##sys#primordial-thread}}.
    229 
    230 * A mailbox-cursor must live in an environment where mailbox entries are
    231 added and removed asynchronously. The cursor does '''not''' see a
    232 snapshot of the mailbox. The current state of the mailbox is queried.
     226threads "runnable." The problem is when the mailbox is empty the
     227current-thread is suspended (indefinite block). When the scheduler looks for
     228the next ready thread and one is not available it signals "deadlock." Using a
     229{{TIMEOUT}} will allow the calling thread to unblock eventually.
     230
     231* A mailbox-cursor must live in an environment where mailbox entries are added
     232and removed asynchronously. The cursor does '''not''' see a snapshot of the
     233mailbox. The current state of the mailbox is queried.
    233234
    234235
Note: See TracChangeset for help on using the changeset viewer.