Changes between Version 78 and Version 79 of LightweightConcurrency


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

--

Legend:

Unmodified
Added
Removed
Modified
  • LightweightConcurrency

    v78 v79  
    344344==== Unreachable Concurrent Datastructure ==== 
    345345 
    346 The [http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar BlockedIndefinitelyOnMVar] is raised on a thread that is blocked on an MVar, but the MVar has become unreachable. This is performed at the end of a garbage collection, just before resuming execution of the Haskell threads. In the vanilla RTS, after raising BlockedIndefinitelyOnMVar exception on a blocked thread, the thread is added back to the run queue. However, in the lightweight concurrency implementation, this is not so straightforward. In particular,  
     346The [http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar BlockedIndefinitelyOnMVar] is raised on a thread that is blocked on an MVar, but the MVar has become unreachable. This is performed at the end of a garbage collection, just before resuming execution of the Haskell threads. In the vanilla RTS, after raising BlockedIndefinitelyOnMVar exception on a blocked thread, the thread is added back to the run queue. However, in the lightweight concurrency (LWC) implementation, this is not so straightforward. In particular,  
    347347 
    348348  * How do we know whether the SCont is blocked on a concurrent data structure in Haskell?  
     
    353353==== Unreachable Scheduler ==== 
    354354 
     355Unlike the vanilla RTS, schedulers can become unreachable in the LWC implementation. Concurrency substrate allows the programmer to install finalizers with the following primitive. 
     356 
     357{{{ 
     358setFinalizer :: SCont -> IO () -> IO() 
     359}}} 
     360 
     361If an SCont is blocked with status `SContSwitched Yielded` has become unreachable, we run the SCont's finalizer, if installed. 
    355362 
    356363== Related Work ==