select: Wrap the select(2) POSIX function

[ bsd3, library, system ] [ Propose Tags ]

While tinkering on a project, I frequently found myself having to make FFI calls to select(2). This package provides an interface to that system call.

Changes in version 0.4:

  • Introduce an interface to fd_set.

  • Add functions with various amounts of abstraction; in particular, select'' matches select in previous versions.

  • Retry select(2) in case of interruption by signals.

  • Remove dependence on the vector package.


  • Behavior with write and exception file descriptors is under-tested. Feedback is welcome.

  • This package is far from complete, and should be tested throughly before being relied upon.


  • Return the error code specified by errno if select fails.

  • Possibly move the select retry code from C to Haskell.

  • Reorder functions to make the documentation more logical.

  • Use hsc2hs's #const to get preprocessor constants (removes some of FdSet's cbits.c).

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


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1, 0.2, 0.2.1, 0.3, 0.4,
Dependencies base (>=4 && <5) [details]
License BSD-3-Clause
Copyright 2012 Gard Spreemann
Author Gard Spreemann
Maintainer Gard Spreemann <>
Category System
Home page
Uploaded by GardSpreemann at 2012-10-07T13:01:57Z
Distributions NixOS:
Reverse Dependencies 3 direct, 2 indirect [details]
Downloads 5306 total (23 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]