select: Give the select(2) POSIX function a simple STM interface
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 anMVar
, 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.
Versions | 0.1, 0.2, 0.2.1, 0.3, 0.4, 0.4.0.1 |
---|---|
Dependencies | base (==4.*), stm, vector [details] |
License | BSD-3-Clause |
Copyright | 2012 Gard Spreemann |
Author | Gard Spreemann |
Maintainer | Gard Spreemann <gspreemann@gmail.com> |
Category | System |
Home page | http://nonempty.org/software/haskell-select |
Uploaded | by GardSpreemann at Sat Jul 28 12:58:49 UTC 2012 |
Distributions | NixOS:0.4.0.1 |
Downloads | 2484 total (17 in the last 30 days) |
Rating | (no votes yet) [estimated by rule of succession] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] Hackage Matrix CI |
Modules
[Index]
Downloads
- select-0.2.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)