* Added a mutex to IORequest. It doesn't look like we can get around

using a lock and I'm not very much in favor of a global one.
* Added "finished" callback to IORequest.
* IOOperation::Finish() no longer invokes its parent request's
  ChunkFinished(). The finisher does this instead. ChunkFinished()
  can optionally remove the chunk from the parent.
* Added IORequest::Wait() which waits for the completion of the request.
* Introduced IORequestChunk::ResetStatus() to make setting the status to
  "pending" somewhat more explicit.
* Implemented the missing IOScheduler::SetCallback() methods.
* The NotifyAll() calls on the IOScheduler's condition variables were
  missing, so it just waited forever.
* Added some more debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26597 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-07-24 01:54:41 +00:00
parent 77cbdee787
commit 902559ce32
5 changed files with 170 additions and 29 deletions
+1 -1
View File
@@ -153,7 +153,7 @@ struct driver_module_info {
/* interface of device */
typedef struct io_request io_request;
typedef struct IORequest io_request;
struct device_module_info {
module_info info;