[Ace-users] Re: JAWS generated error message when switching IO strategy from Synch to Asynch on FreeBSD 6

Fan fanyang32 at gmail.com
Thu Aug 23 15:59:48 CDT 2007


Hi all,

I realized that JAWS didn't support Asynchronous IO on UNIX after
digging into the source code.

JAWS2 does support AIO on UNIX. but there are bugs in JAWS2. First for
ACE_Asynch_Transmit_File, you must give header before you call: io-
>transmit_file (handler, info->path (), "", 0, "", 0); inside
HTTP_10_write.cpp. otherwise you will get erro message like:
ACE_POSIX_Asynch_Write_Stream::write:Attempt to write 0 bytes etc..

second: ACE_Message_Block's constructor:
ACE_Message_Block::ACE_Message_Block (const char *data, size_t size,
unsigned long priority) has a bug, if you pass a string which include
"\r\n", message_block will fail to consruct itself. I didn't look at
code to figure out where is the bug.

After fix forementioned bug, JAWS2 works on FreeBSD 6 with AIO. now
I'm going to figure out how to deal with flow control on proactor in
JAWS2. Do you have any idea on flow-control with proactor? thanks.

Fan







More information about the Ace-users mailing list