Fennel: /home/pub/open/dev/fennel/device/AioSignalScheduler.cpp File Reference (original) (raw)

Definition at line 49 of file AioSignalScheduler.cpp.

References RandomAccessRequestBinding::notifyTransferCompletion().

Referenced by AioSignalScheduler::AioSignalScheduler().

00050 { 00051 assert(pSiginfo->si_code == SI_ASYNCIO); 00052 RandomAccessRequestBinding pBinding = 00053 static_cast<RandomAccessRequestBinding *>(pSiginfo->si_value.sival_ptr); 00054 00055 // static_cast assigned to lpBinding is a workaround 00056 // for a gcc bug that shows up on Ubuntu 8.04 when 00057 // passing pBinding to aio_ methods 00058 aiocb *lpBinding = static_cast<aiocb *>(pBinding); 00059 00060 int rc = aio_error(lpBinding); 00061 if (rc != EINPROGRESS) { 00062 rc = aio_return(lpBinding); 00063 pBinding->notifyTransferCompletion(rc >= 0); 00064 } 00065 // TODO: chain? 00066 }