Tried it, nsd started crashing and i am guessing that the problem is combination of aio_write and mmap. When is start spooling, i just submit aio_write and return immediately, so there are a lot of quick aio_write calls. By the time i reach mmap, it looks like it's always ahead of actual writing, so even when i am trying to check aio_error/aio_fsync in the NsGetRequest, i still get SIGBUS/SIGSEGV when i access reqPtr->content, looks like mmap and aio_write are out of sync. And there is no way to wait until all file buffers will be flushed, so manual separate thread implementation could be the only portable solution. Or i just do not understand aio_xxx things completely.

Zoran Vasiljevic wrote:

Am 31.12.2005 um 20:12 schrieb Vlad Seryakov:

aio_read/aio_write system calls look like supported ubnder Linux


yes.  most of modern os's support some kind of kaio.
I have checked solaris, linux and darwin and all do.
the problem with spawning yet another thread is
system resources. each new thread (on solaris)
results in an lwp which is not cheap. therfore I'd
opt to use aio for largefile spooling.

Zoran

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
naviserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/naviserver-devel


--
Vlad Seryakov
571 262-8608 office
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/

Reply via email to