The select package

[Tags: bsd3, library]

While tinkering on a project, I frequently found myself having to make FFI calls to select(2). This package is an attempt reduce the boilerplate I needed to do that. While at it, I took the opportunity to have what select returns put in a TMVar.

The package has three parts:

System.Posix.IO.Select
just wraps select.
Control.Concurrent.STM.TMVarIO
and Control.Concurrent.MVarIO put the return value of IO actions into a TMVar or an MVar, respectively.
Control.Concurrent.STM.RunOrElse
defines functions that give you the return value of whatever finishes first of an IO action and an STM operation.
System.Posix.IO.Select.STM
and System.Posix.IO.Select.MVar do the above for the special case select.

NOTE: I feel I'm occupying prime namespace realestate with a package name like select. I'll happily let myself be chased away if anybody else wants to use this package name. Let me know.

NOTE 2: The vector dependency comes from me not spending time figuring out how to pass lists of data to C without first turning them into vectors. It'll probably disappear soon.

CAVEAT: I'm not an experienced Haskeller (as you can tell from note 2), and this is my first foray into FFI in general. Use with caution.


Properties

Versions0.1, 0.2, 0.2.1, 0.3, 0.4, 0.4.0.1
Dependenciesbase (==4.*), stm, vector
LicenseBSD3
Copyright2012 Gard Spreemann
AuthorGard Spreemann
MaintainerGard Spreemann <gspreemann@gmail.com>
CategorySystem
Home pagehttp://nonempty.org/software/haskell-select
Upload dateSat Jul 28 12:58:49 UTC 2012
Uploaded byGardSpreemann
Downloads709 total (41 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees