Version française
Home     About     Download     Resources     Contact us    
Browse thread
Select on channels (again)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jonathan Roewen <jonathan.roewen@g...>
Subject: Re: [Caml-list] Re: Select on channels (again)
> It sounds simple but doesn't work.  If select tells you a file
> descriptor doesn't have data waiting you can't be sure there isn't
> still data in the corresponding channel's buffer.  See the thread that
> I referenced for a good discussion of why this is annoying.  For one
> thing, it makes it impossible to use Marshal.from_channel without
> potentially blocking.

Either one of us is misunderstanding the other....

Instead of using Pervasives.open_xxx, use Unix.openfile which returns
Unix.file_descr, and also doesn't use internal ocaml buffering.

Then, presumably, Unix.select would do what you expect, and then you
can use Unix.in_channel_of_descr to get an ocaml in_channel to read
from.

And if I'm misunderstanding you, then perhaps the problem isn't really
Unix.select...

Jonathan