Commit 6ffe0845 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

server: Cancel process asyncs on process termination.

parent ad1e0609
......@@ -369,6 +369,11 @@ restart:
return woken;
}
void cancel_process_asyncs( struct process *process )
{
cancel_async( process, NULL, NULL, 0 );
}
/* wake up async operations on the queue */
void async_wake_up( struct async_queue *queue, unsigned int status )
{
......
......@@ -175,6 +175,7 @@ extern void async_terminate( struct async *async, unsigned int status );
extern void async_wake_up( struct async_queue *queue, unsigned int status );
extern struct completion *fd_get_completion( struct fd *fd, apc_param_t *p_key );
extern void fd_copy_completion( struct fd *src, struct fd *dst );
extern void cancel_process_asyncs( struct process *process );
/* access rights that require Unix read permission */
#define FILE_UNIX_READ_ACCESS (FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA)
......
......@@ -840,6 +840,7 @@ static void process_killed( struct process *process )
process->winstation = 0;
process->desktop = 0;
close_process_handles( process );
cancel_process_asyncs( process );
if (process->idle_event)
{
release_object( process->idle_event );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment