Safe Haskell | Safe-Infered |
---|
Documentation
selectOrTakeTMVar :: [Fd] -> [Fd] -> [Fd] -> Timeout -> TMVar a -> IO (Either CInt a)Source
The parameters are the same as for select
, except for the
addition of a TMVar
. The function returns as soon as either the
select(2)
has completed, or the TMVar
is full.
The return value is either the return value of select(2)
, or the
content of the TMVar
. If the TMVar
becomes available first,
then the select(2)
call may hang around forever or until it times
out (as specified by the Timeout
parameter). If the select(2)
returns before the TMVar
is available, the TMVar
is guaranteed
to be left in place.
(Incidentally, selectOrTakeTMVar
is the task I really wanted to
accomplish, and solving it just turned into this little library).