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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user