On Tue, Oct 09, 2007 at 11:06:21AM -0400, arthur zhang wrote:
> Hi All,
> 
> As my understanding, with libevent, any io should be non_blocking, and here
> comes my dumb q;-)
> 
> I want log stuffs(trace) to a disk file in my comm callback, so I open a
> file like below, but I didn't get any write event to call back. I am using
> Ubuntu Dapper and my target system is Solaris 10.

1) You can't do non-blocking file I/O in Unix using the standard interfaces.
   You need to use a horrible and poorly implemented interfaces like POSIX
   Asynchronous I/O, which is impossible to use with libevent.

2) A file descriptor (to a realfile) will _always_ poll as ready for reading
   or writing.  (The logic being, even though the disk might be slow, it's
   still always available for I/O--the disk is one gigantic buffer.) Thus,
   if your code was written properly your complaint should have been that
   you got an endless succession of write readiness callbacks suspicously
   lacking any gap.

> Using stdout worked.

If stdout was a pipe, then it would work. Thus, you could shamefully (but
with good reason) pipe to cat, and redirect cat's stdout to a file.
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to