Changes between Version 11 and Version 12 of Concurrency


Ignore:
Timestamp:
Mar 29, 2006 12:19:08 PM (9 years ago)
Author:
simonmar@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Concurrency

    v11 v12  
    8080 * No thread can be blocked indefinitely on an MVar unless another thread holds the MVar indefinitely. 
    8181 
     82'''Cooperative scheduling''' describes an implementation in which it is the programmer's responsibility to insert context switch points in the code.  An implementation that only provides cooperative scheduling cannot satisfy the fairness properties given above.  A programmer who has access to all the code ''may'' be able to insert enough context switch points to satisfy fairness, but this isn't always possible. 
     83 
    8284'''Concurrent foreign call''' means a foreign call that should run concurrently with other Haskell threads.  It is a requirement of "fairness" (above) that a foreign call should not prevent other threads from making progress indefinitely.  Note that we used to use the term '''non-blocking foreign call''' here, but that lead to confusion with "foreign calls that block", which are foreign calls that may wait indefinitely for some resource, such as reading data from a socket.  "foreign calls that block" are the main reason for wanting support for concurrent foreign calls. 
    8385