Changes between Version 10 and Version 11 of Concurrency


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

--

Legend:

Unmodified
Added
Removed
Modified
  • Concurrency

    v10 v11  
    8080 * No thread can be blocked indefinitely on an MVar unless another thread holds the MVar indefinitely. 
    8181 
    82 '''Non-blocking foreign call''' as commonly used, actually means a foreign call that *can* block.  As a 
    83 consequence of the fairness policy, one wishes to place the requirement on 
    84 implementations that such a blocking foreign call _should_not_ 
    85 block progress of other Haskell threads.  The thread-nature of the 
    86 foreign call is "blocking".  The Haskell-API nature is desired to be 
    87 "non-blocking". 
     82'''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. 
     83 
    8884 
    8985'''Scheduling.'''