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
2eb86444
Commit
2eb86444
authored
Nov 10, 2020
by
Jacek Caban
Committed by
Alexandre Julliard
Nov 10, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Support waiting on screen buffer handles.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
459d3764
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
5 deletions
+13
-5
console.c
dlls/kernel32/tests/console.c
+0
-4
console.c
server/console.c
+13
-1
No files found.
dlls/kernel32/tests/console.c
View file @
2eb86444
...
...
@@ -1019,7 +1019,6 @@ static void test_wait(HANDLE input, HANDLE orig_output)
res
=
WaitForSingleObject
(
input
,
0
);
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %x
\n
"
,
res
);
res
=
WaitForSingleObject
(
output
,
0
);
todo_wine
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %x
\n
"
,
res
);
res
=
WaitForSingleObject
(
orig_output
,
0
);
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %x
\n
"
,
res
);
...
...
@@ -1027,7 +1026,6 @@ static void test_wait(HANDLE input, HANDLE orig_output)
ok
(
status
==
STATUS_TIMEOUT
||
broken
(
status
==
STATUS_ACCESS_DENIED
/* win2k8 */
),
"NtWaitForSingleObject returned %x
\n
"
,
status
);
status
=
NtWaitForSingleObject
(
output
,
FALSE
,
&
zero
);
todo_wine
ok
(
status
==
STATUS_TIMEOUT
||
broken
(
status
==
STATUS_ACCESS_DENIED
/* win2k8 */
),
"NtWaitForSingleObject returned %x
\n
"
,
status
);
...
...
@@ -1037,7 +1035,6 @@ static void test_wait(HANDLE input, HANDLE orig_output)
res
=
WaitForSingleObject
(
input
,
0
);
ok
(
!
res
,
"WaitForSingleObject returned %x
\n
"
,
res
);
res
=
WaitForSingleObject
(
output
,
0
);
todo_wine
ok
(
!
res
,
"WaitForSingleObject returned %x
\n
"
,
res
);
res
=
WaitForSingleObject
(
orig_output
,
0
);
ok
(
!
res
,
"WaitForSingleObject returned %x
\n
"
,
res
);
...
...
@@ -1045,7 +1042,6 @@ static void test_wait(HANDLE input, HANDLE orig_output)
ok
(
!
status
||
broken
(
status
==
STATUS_ACCESS_DENIED
/* win2k8 */
),
"NtWaitForSingleObject returned %x
\n
"
,
status
);
status
=
NtWaitForSingleObject
(
output
,
FALSE
,
&
zero
);
todo_wine
ok
(
!
status
||
broken
(
status
==
STATUS_ACCESS_DENIED
/* win2k8 */
),
"NtWaitForSingleObject returned %x
\n
"
,
status
);
...
...
server/console.c
View file @
2eb86444
...
...
@@ -208,6 +208,7 @@ struct screen_buffer
static
void
screen_buffer_dump
(
struct
object
*
obj
,
int
verbose
);
static
void
screen_buffer_destroy
(
struct
object
*
obj
);
static
int
screen_buffer_add_queue
(
struct
object
*
obj
,
struct
wait_queue_entry
*
entry
);
static
struct
fd
*
screen_buffer_get_fd
(
struct
object
*
obj
);
static
struct
object
*
screen_buffer_open_file
(
struct
object
*
obj
,
unsigned
int
access
,
unsigned
int
sharing
,
unsigned
int
options
);
...
...
@@ -217,7 +218,7 @@ static const struct object_ops screen_buffer_ops =
sizeof
(
struct
screen_buffer
),
/* size */
screen_buffer_dump
,
/* dump */
no_get_type
,
/* get_type */
no_add_queue
,
/* add_queue */
screen_buffer_add_queue
,
/* add_queue */
NULL
,
/* remove_queue */
NULL
,
/* signaled */
NULL
,
/* satisfied */
...
...
@@ -706,6 +707,17 @@ static struct object *screen_buffer_open_file( struct object *obj, unsigned int
return
grab_object
(
obj
);
}
static
int
screen_buffer_add_queue
(
struct
object
*
obj
,
struct
wait_queue_entry
*
entry
)
{
struct
screen_buffer
*
screen_buffer
=
(
struct
screen_buffer
*
)
obj
;
if
(
!
screen_buffer
->
input
)
{
set_error
(
STATUS_ACCESS_DENIED
);
return
0
;
}
return
add_queue
(
&
screen_buffer
->
input
->
obj
,
entry
);
}
static
struct
fd
*
screen_buffer_get_fd
(
struct
object
*
obj
)
{
struct
screen_buffer
*
screen_buffer
=
(
struct
screen_buffer
*
)
obj
;
...
...
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