Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
5c0e2965
Commit
5c0e2965
authored
Apr 10, 2017
by
Jacek Caban
Committed by
Alexandre Julliard
Apr 11, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Use stored APC in async_set_result.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
28c33903
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
7 additions
and
10 deletions
+7
-10
async.c
server/async.c
+5
-6
file.h
server/file.h
+1
-2
thread.c
server/thread.c
+1
-2
No files found.
server/async.c
View file @
5c0e2965
...
...
@@ -191,7 +191,7 @@ void async_terminate( struct async *async, unsigned int status )
data
.
async_io
.
status
=
status
;
thread_queue_apc
(
async
->
thread
,
&
async
->
obj
,
&
data
);
}
else
async_set_result
(
&
async
->
obj
,
STATUS_SUCCESS
,
0
,
0
,
0
);
else
async_set_result
(
&
async
->
obj
,
STATUS_SUCCESS
,
0
);
async_reselect
(
async
);
if
(
async
->
queue
)
release_object
(
async
);
/* so that it gets destroyed when the async is done */
...
...
@@ -300,8 +300,7 @@ static void add_async_completion( struct async_queue *queue, apc_param_t cvalue,
}
/* store the result of the client-side async callback */
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
apc_param_t
total
,
client_ptr_t
apc
,
client_ptr_t
apc_arg
)
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
apc_param_t
total
)
{
struct
async
*
async
=
(
struct
async
*
)
obj
;
...
...
@@ -329,13 +328,13 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota
if
(
async
->
queue
&&
!
async
->
data
.
apc
&&
async
->
data
.
apc_context
)
add_async_completion
(
async
->
queue
,
async
->
data
.
apc_context
,
status
,
total
);
if
(
apc
)
if
(
a
sync
->
data
.
a
pc
)
{
apc_call_t
data
;
memset
(
&
data
,
0
,
sizeof
(
data
)
);
data
.
type
=
APC_USER
;
data
.
user
.
func
=
apc
;
data
.
user
.
args
[
0
]
=
a
pc_arg
;
data
.
user
.
func
=
a
sync
->
data
.
a
pc
;
data
.
user
.
args
[
0
]
=
a
sync
->
data
.
apc_context
;
data
.
user
.
args
[
1
]
=
async
->
data
.
iosb
;
data
.
user
.
args
[
2
]
=
0
;
thread_queue_apc
(
async
->
thread
,
NULL
,
&
data
);
...
...
server/file.h
View file @
5c0e2965
...
...
@@ -178,8 +178,7 @@ extern void free_async_queue( struct async_queue *queue );
extern
struct
async
*
create_async
(
struct
thread
*
thread
,
const
async_data_t
*
data
,
struct
iosb
*
iosb
);
extern
void
queue_async
(
struct
async_queue
*
queue
,
struct
async
*
async
);
extern
void
async_set_timeout
(
struct
async
*
async
,
timeout_t
timeout
,
unsigned
int
status
);
extern
void
async_set_result
(
struct
object
*
obj
,
unsigned
int
status
,
apc_param_t
total
,
client_ptr_t
apc
,
client_ptr_t
apc_arg
);
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
);
extern
void
async_terminate
(
struct
async
*
async
,
unsigned
int
status
);
...
...
server/thread.c
View file @
5c0e2965
...
...
@@ -1484,8 +1484,7 @@ DECL_HANDLER(select)
else
if
(
apc
->
result
.
type
==
APC_ASYNC_IO
)
{
if
(
apc
->
owner
)
async_set_result
(
apc
->
owner
,
apc
->
result
.
async_io
.
status
,
apc
->
result
.
async_io
.
total
,
apc
->
result
.
async_io
.
apc
,
apc
->
result
.
async_io
.
arg
);
async_set_result
(
apc
->
owner
,
apc
->
result
.
async_io
.
status
,
apc
->
result
.
async_io
.
total
);
}
wake_up
(
&
apc
->
obj
,
0
);
close_handle
(
current
->
process
,
req
->
prev_apc
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment