mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 0e0834ae92291e9857ed01f3cb116240abda642b.
This commit is contained in:
parent
46514b9952
commit
b888a45d12
@ -1,4 +1,4 @@
|
||||
From 91a2f667bd20e9f4da38f2a3ee2a189a18d8bb0e Mon Sep 17 00:00:00 2001
|
||||
From 9fc1b0617a1bf5136389984b9931ab92a42e56dc Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 9 Apr 2017 03:13:25 +0200
|
||||
Subject: server: Skip async completion when possible.
|
||||
@ -25,7 +25,7 @@ index 6846b514dc2..a6f8135624a 100644
|
||||
|
||||
CloseHandle(ov.hEvent);
|
||||
diff --git a/server/async.c b/server/async.c
|
||||
index d1cea9a607e..bb3bc325c38 100644
|
||||
index f50cdc5a45a..d222287c30b 100644
|
||||
--- a/server/async.c
|
||||
+++ b/server/async.c
|
||||
@@ -45,6 +45,7 @@ struct async
|
||||
@ -36,7 +36,7 @@ index d1cea9a607e..bb3bc325c38 100644
|
||||
struct event *event;
|
||||
async_data_t data; /* data for async I/O call */
|
||||
struct iosb *iosb; /* I/O status block */
|
||||
@@ -165,6 +166,14 @@ static void async_queue_destroy( struct object *obj )
|
||||
@@ -180,6 +181,14 @@ static void async_queue_destroy( struct object *obj )
|
||||
if (async_queue->completion) release_object( async_queue->completion );
|
||||
}
|
||||
|
||||
@ -51,15 +51,15 @@ index d1cea9a607e..bb3bc325c38 100644
|
||||
/* notifies client thread of new status of its async request */
|
||||
void async_terminate( struct async *async, unsigned int status )
|
||||
{
|
||||
@@ -262,6 +271,7 @@ struct async *create_async( struct thread *thread, const async_data_t *data, str
|
||||
async->timeout = NULL;
|
||||
@@ -278,6 +287,7 @@ struct async *create_async( struct thread *thread, const async_data_t *data, str
|
||||
async->queue = NULL;
|
||||
async->signaled = 0;
|
||||
async->wait_handle = 0;
|
||||
+ async->skip_completion = 0;
|
||||
|
||||
if (iosb) async->iosb = (struct iosb *)grab_object( iosb );
|
||||
else async->iosb = NULL;
|
||||
@@ -340,7 +350,7 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota
|
||||
@@ -384,7 +394,7 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota
|
||||
async->status = status;
|
||||
if (status == STATUS_MORE_PROCESSING_REQUIRED) return; /* don't report the completion */
|
||||
|
||||
@ -69,7 +69,7 @@ index d1cea9a607e..bb3bc325c38 100644
|
||||
if (async->data.apc)
|
||||
{
|
||||
diff --git a/server/fd.c b/server/fd.c
|
||||
index 7a876917fdd..3d62bae5b84 100644
|
||||
index a2640468644..75cb9bff945 100644
|
||||
--- a/server/fd.c
|
||||
+++ b/server/fd.c
|
||||
@@ -2381,6 +2381,7 @@ DECL_HANDLER(flush)
|
||||
@ -82,7 +82,7 @@ index 7a876917fdd..3d62bae5b84 100644
|
||||
release_object( fd );
|
||||
@@ -2457,6 +2458,7 @@ DECL_HANDLER(read)
|
||||
{
|
||||
reply->wait = fd->fd_ops->read( fd, async, req->pos );
|
||||
reply->wait = async_handoff( async, fd->fd_ops->read( fd, async, req->pos ) );
|
||||
reply->options = fd->options;
|
||||
+ async_skip_completion( async, fd->comp_flags );
|
||||
release_object( async );
|
||||
@ -105,10 +105,10 @@ index 7a876917fdd..3d62bae5b84 100644
|
||||
}
|
||||
release_object( iosb );
|
||||
diff --git a/server/file.h b/server/file.h
|
||||
index 30db87e3ac7..aa70908a8a1 100644
|
||||
index 8cc4d3beab2..f4482982cfe 100644
|
||||
--- a/server/file.h
|
||||
+++ b/server/file.h
|
||||
@@ -182,6 +182,7 @@ extern void async_set_timeout( struct async *async, timeout_t timeout, unsigned
|
||||
@@ -183,6 +183,7 @@ extern void async_set_timeout( struct async *async, timeout_t timeout, unsigned
|
||||
extern void async_set_result( struct object *obj, unsigned int status, apc_param_t total );
|
||||
extern int async_queued( struct async_queue *queue );
|
||||
extern int async_waiting( struct async_queue *queue );
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "08df007e802dfa2845a5b4f33bbf8a04202258bb"
|
||||
echo "0e0834ae92291e9857ed01f3cb116240abda642b"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
Loading…
Reference in New Issue
Block a user