concurrent-extra icon indicating copy to clipboard operation
concurrent-extra copied to clipboard

Extra concurrency primitives

Results 11 concurrent-extra issues
Sort by recently updated
recently updated
newest added

I think `Broadcast` could be (almost) simplified to `newtype Broadcast a = Broadcast { unBroadcast :: MVar a }`, where "silent" is represented by an empty `MVar` and "broadcasting" is...

`Control.Concurrent.RLock.acquire` `wait`s on the inner `Lock` and then tries to acquire the `RLock` again. However, what if between these two operations, another thread managed to `acquire` the `RLock`? The thread...

Similarly to Broadcast's `listenTimeout`, it may be useful to have: - `acquireTimeout :: Lock -> Integer -> IO Bool` and - `withTimeout :: Lock -> Integer -> IO a ->...

I believe that `RLock` needs uninterruptible masking around the outer `MVar`. Otherwise, since `takeMVar` is interruptible, it may happen that `release` gets interrupted after taking the outer lock but before...

This Java concurrency primitive is useful, and not easily replicated using the existing primitives in this package. The API could be similar to `RLock`, except there is no concept of...

When building on our Jenkins server, I got the following test failure: ``` Unpacking to concurrent-extra-0.7.0.6/ Resolving dependencies... [1 of 1] Compiling Main ( Setup.hs, dist/setup/Main.o ) Linking ./dist/setup/setup ......

Citing from http://hydra.cryp.to/build/1114863/nixlog/1/raw: ``` Running 1 test suites... Test suite test-concurrent-extra: RUNNING... Pessimistic locking: Event: set wait a: [OK] set wait b: [OK] set wait c: [OK] set wait d:...

That should be pretty similar to `Lock`.

Hackage seems to have stalled while generating the docs. There's a neat script to generate an upload docs here: https://github.com/ekmett/lens/blob/master/scripts/hackage-docs.sh