select
Version 0.2.1 revision 0 uploaded by GardSpreemann.
Package meta
- Synopsis
- Give the select(2) POSIX function a simple STM interface
- Description
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 whatselect
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.
- Author
- Gard Spreemann
- Bug reports
- n/a
- Category
- System
- Copyright
- 2012 Gard Spreemann
- Homepage
- http://nonempty.org/software/haskell-select
- Maintainer
- Gard Spreemann <gspreemann@gmail.com>
- Package URL
- n/a
- Stability
- n/a