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

Versions 0.1, 0.2, 0.2.1, 0.3, 0.4, 0.4.0.1
Dependencies base (==4.*), stm, vector [details]
License BSD3
Copyright 2012 Gard Spreemann
Author Gard Spreemann
Maintainer Gard Spreemann <gspreemann@gmail.com>
Stability Unknown
Category System
Home page http://nonempty.org/software/haskell-select
Uploaded Sat Jul 28 12:58:49 UTC 2012 by GardSpreemann
Distributions NixOS:0.4.0.1
Downloads 1471 total (8 in the last 30 days)
Votes
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees