Changes between Version 84 and Version 85 of LightweightConcurrency


Ignore:
Timestamp:
May 22, 2012 10:06:56 PM (2 years ago)
Author:
kc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LightweightConcurrency

    v84 v85  
    2727   * [#UnreachableConcurrentDatastructure Unreachable Concurrent Datastructure] 
    2828   * [#UnreachableScheduler Unreachable Scheduler] 
    29  * [#Safe-foreignCalls Safe-foreign Calls] 
     29 * [#SafeForeignCalls SafeForeign Calls] 
    3030 * [#RelatedWork Related Work] 
    3131 
     
    365365If an SCont is blocked with status `SContSwitched Yielded` has become unreachable, we run the SCont's finalizer, if installed. 
    366366 
    367 == Safe-foreign Calls == 
     367== Safe Foreign Calls == 
    368368 
    369369A safe foreign call does not impede the execution of other Haskell threads on the same scheduler, if the foreign call blocks. Before performing the foreign call, the task, say `T1`, releases the capability that it currently owns. This might wake up other tasks which are waiting to acquire a free capability. After the foreign call has completed, `T1` tries to reacquire the last owned capability. In the fast path, the foreign call quickly completes and `T1` reacquires the capability. In the slow path, some other task, say `T2`, acquires the capability.