The I/O callback will eventually move the operation back to the

completed operations queue. That doesn't need to happen synchronously
either. So we have to restart the loop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26607 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-07-24 12:10:39 +00:00
parent 3f18ee2626
commit bfbae5e594
@@ -164,11 +164,12 @@ IOScheduler::_Finisher()
TRACE("IOScheduler::_Finisher(): operation: %p\n", operation);
while (!operation->Finish()) {
if (!operation->Finish()) {
TRACE(" operation: %p not finished yet\n", operation);
// TODO: This must be done differently once the scheduler implements
// an actual scheduling policy (other than no-op).
fIOCallback(fIOCallbackData, operation);
continue;
}
// notify request and remove operation