select-0.1: select.cabal
Name: select
Version: 0.1
Synopsis: Give the select(2) POSIX function a simple STM interface
Homepage: http://nonempty.org/software/haskell-select
License: BSD3
License-file: LICENSE
Author: Gard Spreemann
Maintainer: Gard Spreemann <gspreemann@gmail.com>
Copyright: 2012 Gard Spreemann
Category: System
Build-type: Simple
Extra-source-files: src/System/Posix/IO/Select/select_wrapper.c src/System/Posix/IO/Select/select_wrapper.h
Cabal-version: >=1.2
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 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.
.
["System.Posix.IO.Select.STM"] and "System.Posix.IO.Select.MVar" do the above for
@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.
.
/CAVEAT/: I'm not an experienced Haskeller, and this is my first foray into
FFI in general.
Library
Exposed-modules: Control.Concurrent.MVarIO,
Control.Concurrent.STM.TMVarIO,
System.Posix.IO.Select,
System.Posix.IO.Select.STM,
System.Posix.IO.Select.Types,
System.Posix.IO.Select.MVar
hs-source-dirs: src
Build-depends: base >= 4 && <5, vector, stm
c-sources: src/System/Posix/IO/Select/select_wrapper.c
cc-options: -std=c99 -Wall -DNDEBUG