Concurrent +Control

module Control.Concurrent
base Control.Concurrent
A common interface to a collection of useful concurrency abstractions.
package concurrent-barrier
A very simple package providing thread barriers. Version 0.1.2
package concurrent-extra
The concurrent-extra package offers among other things the following selection of synchronisation primitives: * Broadcast: Wake multiple threads by broadcasting a value. * Event: Wake multiple threads by signalling an event. * Lock: Enforce exclusive access to a resource. Also known as a binary semaphore or mutex. The package additionally provides an alternative that works in the STM monad. * RLock: A lock which can be acquired multiple times by the same thread. Also known as a reentrant mutex. * ReadWriteLock: Multiple-reader, single-writer locks. Used to protect shared resources which may be concurrently read, but only sequentially written. * ReadWriteVar: Concurrent read, sequential write variables. Please consult the API documentation of the individual modules for more detailed information. This package was inspired by the concurrency libraries of Java and Python. Version
package concurrent-sa
An extremely lightweight system for concurrent simulated annealing. Version 1.0.1
package concurrent-split
MVars and Channels with distinguished input and output side. When threads communicate via an MVar or a Chan there are often clearly defined roles, which thread is the sender and which one is receiver. We provide wrappers around the standard concurrency communication channels that make the distinction clear and type safe. For example, if a function has a parameter of type TChan.In then it is sure that it will only write to that channel. Additionally if the compiler warns about an unused TChan.Out that was created by then you know that the receiver part of your communication is missing. See also package stm-split for transactional communication. This package follows the same idea as chan-split but is strictly Haskell 98. Version 0.0
package concurrent-supply
A fast supply of concurrent unique identifiers suitable for use within a single process. Once the initial Supply has been initialized, the remainder of the API is pure. See Control.Concurrent.Supply for details. Version 0.1.7
package concurrentoutput
This library provides a simple interface to output status messages from more than one thread. It will continue adding information (such as dots, or "done") to the correct line and continue scrolling when a line is done. For example, this screen: > Thread ThreadId 27: still working... done > Thread ThreadId 25: still working... > Thread ThreadId 26: still working... > _ will, once thread 25 has finished, look like this: > Thread ThreadId 25: still working... done > Thread ThreadId 27: still working... done > Thread ThreadId 26: still working... > _ If standard output is not a terminal, it will only print complete lines and not output any control characters. At the moment, it can only handle lines that are shorter than the terminal. If they are not, output will be garbled again. Version
package btree-concurrent
A backend agnostic, concurrent BTree Version 0.1.5
package net-concurrent
net-concurrent is a simple haskell library for doing parallel computation on several computers using the network. There is a single master process and many slave processes. Communication is between the master and the slaves, for simplicity slaves never communicate with each other. Communication is done using NVars, network variables. The NVar api is very similar to MVar. These are stored in the master process and shared between all processes in the system. Slave nodes can read and write these NVar variables which results in network transactions with the master. Version 0.1.0