chaselev-deque-0.1.2: Chase & Lev work-stealing lock-free double-ended queues (deques).

Safe HaskellNone

Data.Concurrent.Deque.ChaseLev

Description

Chase-Lev work stealing Deques

This implementation derives directly from the pseudocode in the 2005 SPAA paper:

http:citeseerx.ist.psu.eduviewdocdownload?doi=10.1.1.170.1097&rep=rep1&type=pdf

TODO: local topBound optimization. TODO: Do the more optimized version of growCirc

Synopsis

Documentation

pushL :: ChaseLevDeque a -> a -> IO ()Source

For a work-stealing queue pushL is the `local' push. Thus only a single thread should perform this operation.

tryPopR :: ChaseLevDeque elt -> IO (Maybe elt)Source

This is the steal operation. Multiple threads may concurrently attempt steals from the same thread.