English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

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: 2006-08-22 (06:41)
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

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