server: Don't check the user data for NULL in async_terminate().
This semantically reverts481517178f
. That commit was used to implement NtFlushBuffersFile, which at the time didn't use a callback function.9050b58f07
changed it to use irp_completion(), since the result of a blocking flush needed to be taken from the IOSB. As of97afac469f
that's not true anymore, but on the other hand it is theoretically possible for a device driver to touch the Information member of the IOSB, and we don't seem to lose anything by making all asyncs take a common path. Since all asyncs pass user data and there's no clear reason for them not to, let's get rid of a bit of extra code complexity that's no longer used. Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d888cbcb20
commit
3f04fdd876
|
@ -161,18 +161,14 @@ void async_terminate( struct async *async, unsigned int status )
|
|||
|
||||
if (!async->direct_result)
|
||||
{
|
||||
if (async->data.user)
|
||||
{
|
||||
apc_call_t data;
|
||||
apc_call_t data;
|
||||
|
||||
memset( &data, 0, sizeof(data) );
|
||||
data.type = APC_ASYNC_IO;
|
||||
data.async_io.user = async->data.user;
|
||||
data.async_io.sb = async->data.iosb;
|
||||
data.async_io.status = status;
|
||||
thread_queue_apc( async->thread->process, async->thread, &async->obj, &data );
|
||||
}
|
||||
else async_set_result( &async->obj, STATUS_SUCCESS, 0 );
|
||||
memset( &data, 0, sizeof(data) );
|
||||
data.type = APC_ASYNC_IO;
|
||||
data.async_io.user = async->data.user;
|
||||
data.async_io.sb = async->data.iosb;
|
||||
data.async_io.status = status;
|
||||
thread_queue_apc( async->thread->process, async->thread, &async->obj, &data );
|
||||
}
|
||||
|
||||
async_reselect( async );
|
||||
|
|
Loading…
Reference in New Issue