PROPOSAL(S): threadWaitError and threadWaitErrorSTM

Merijn Verstraaten merijn at inconsistent.nl
Tue Mar 18 10:46:01 UTC 2014


Seems rather simple, just use epoll's EPOLLERR event type. There's more types (like the EPOLLPRI type you mentioned), but I would not argue for adding those as such events may not be portable to platforms that don't support epoll (i.e. platforms that only have kqueue/select), whereas EPOLLERR should be available in some form for all platforms.

Cheers,
Merijn

On Mar 17, 2014, at 14:23 , Andreas Voellmy wrote:
> Hi Merijn,
> 
> I see how you'd wait for exceptional conditions using select(). Epoll is a bit different... How would you do it with epoll? Is it using the EPOLLPRI event type? 
> 
> Andi
> 
> 
> On Sun, Mar 16, 2014 at 1:16 PM, Merijn Verstraaten <merijn at inconsistent.nl> wrote:
> I just went with the common documentation name, I know this includes out-of-band data, etc. If it makes you happier, feel free to consider this proposal with s/Error/Exceptional, regardless of how it's called, it'd be nice if we could use this from within Haskell.
> 
> Cheers,
> Merijn
> 
> 
> On Mar 16, 2014, at 16:09 , Brandon Allbery wrote:
> 
>> On Sun, Mar 16, 2014 at 10:25 AM, Merijn Verstraaten <merijn at inconsistent.nl> wrote:
>> threadWaitError :: Fd -> IO ()
>> threadWaitErrorSTM :: Fd -> IO (STM (), IO ())
>> 
>> to allow for blocking on detecting error condition on file descriptors, similar to what C's select() allows.
>> 
>> If you mean the third bitmask, it is not for errors (notwithstanding the documentation on some systems); an "exceptional condition" is not an error, it's MSG_OOB data. Errors show as "ready" on the appropriate mask (read or write) since a read (resp. write) will return immediately with the error instead of blocking.
>> 
>> See http://stackoverflow.com/questions/1342712/nix-select-and-exceptfds-errorfds-semantics and http://man7.org/linux/man-pages/man2/select_tut.2.html for more information.
>> 
>> -- 
>> brandon s allbery kf8nh                               sine nomine associates
>> allbery.b at gmail.com                                  ballbery at sinenomine.net
>> unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
> 
> 
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140318/a6aa5779/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140318/a6aa5779/attachment.sig>


More information about the Libraries mailing list