server: Cancel process asyncs on process termination.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ad1e0609a0
commit
6ffe08459f
|
@ -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 );
|
||||
|
|
Loading…
Reference in New Issue