From: Claus A. <sta...@es...> - 2006-03-06 00:23:32
|
Is there any way to make fsync() asynchronous in the context of statethreads? Currently a process that uses fsync() will block until fsync() returns thus preventing any other operations from occuring. Some OSs provide aio_fsync() but so far I have seen only aio_return() to check for the status of an asynchronous I/O operation, not some mechanism to get notified when the operation finished. SIGIO might be another approach to the problem, but signals have their own problems. What I would like to see is some support in statethreads to make fsync() a scheduling point, just like read()/write() for network I/O. Any pointers/suggestions to accomplish this are welcome! PS: I know I can use multiple processes to mitigate the problem, but I am curious whether that limitation of statethreads can be solved within the library itself (even if it's not portable but only available for some OSs). |