Re: [PATCH 03/10] server: Use async object to transfer IRP result to client.
Jacek Caban <jacek(a)codeweavers.com> writes:
diff --git a/server/file.h b/server/file.h index c0a53a2..75a2e03 100644 --- a/server/file.h +++ b/server/file.h @@ -53,6 +53,8 @@ struct fd_ops void (*reselect_async)( struct fd *, struct async_queue *queue ); /* cancel an async operation */ int (*cancel_async)(struct fd *, struct process *process, struct thread *thread, client_ptr_t iosb); + /* find an async operation in queues */ + struct async *(*find_async)( struct fd *fd, struct process *process, client_ptr_t client_async ); };
I think a per-process list of async/iosb would make more sense. There should be nothing file type specific about finding an async. It could probably be used to get rid of cancel_async() too. -- Alexandre Julliard julliard(a)winehq.org
On 28.11.2016 16:54, Alexandre Julliard wrote:
Jacek Caban <jacek(a)codeweavers.com> writes:
diff --git a/server/file.h b/server/file.h index c0a53a2..75a2e03 100644 --- a/server/file.h +++ b/server/file.h @@ -53,6 +53,8 @@ struct fd_ops void (*reselect_async)( struct fd *, struct async_queue *queue ); /* cancel an async operation */ int (*cancel_async)(struct fd *, struct process *process, struct thread *thread, client_ptr_t iosb); + /* find an async operation in queues */ + struct async *(*find_async)( struct fd *fd, struct process *process, client_ptr_t client_async ); }; I think a per-process list of async/iosb would make more sense. There should be nothing file type specific about finding an async. It could probably be used to get rid of cancel_async() too.
Indeed, it's much cleaner. I sent a patch implementing that. Thanks, Jacek
participants (2)
-
Alexandre Julliard -
Jacek Caban