Paul Gofman
ba42efdb14
ntdll: Pass async parameter to add_fd_completion server call.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-21 16:07:07 +01:00
Zebediah Figura
be541f1b0c
ntdll: Add a direct futex-based implementation of condition variables.
...
While the current path for condition variables will ultimately use futexes if
they are available, the path for address waits is vulnerable to several
spurious wakes, which can be obviated by using condition variables as futexes
directly.
This greatly improves performance for Path of Exile.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45524
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-11 11:52:00 +01:00
Zebediah Figura
954ed39584
ntdll: Reimplement condition variables on top of RtlWaitOnAddress().
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46208
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-08 22:18:16 +01:00
Zebediah Figura
cc8f9b6419
ntdll: Add a futex-based implementation of WaitOnAddress().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-06 10:48:04 +01:00
Zebediah Figura
6060d2703c
ntdll: Use a critical section to ensure that RtlWaitOnAddress compares and queues atomically.
...
Currently a wake may occur between calling compare_addr() and performing the
select request; in that case the thread will never be woken. Prevent this by
taking a CS around both operations.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46099
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 16:13:10 +01:00
Zebediah Figura
0ea963a406
ntdll: Call the select request directly in RtlWaitOnAddress().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 16:13:10 +01:00
Zebediah Figura
e09248d363
ntdll: Don't write more IOCP entries than requested.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45948
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 10:17:48 +01:00
Zebediah Figura
fbde01335f
ntdll: Only wait on the completion port if no entries were returned.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 10:17:48 +01:00
Alexandre Julliard
a0050be13f
ntdll: Use the default keyed event when the handle is null.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-26 12:45:45 +02:00
Daniel Lehman
25acfbb40b
ntdll: Implement RtlWaitOnAddress functions.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-26 11:16:54 +02:00
Zebediah Figura
ef2471ec0f
ntdll: Implement NtRemoveIoCompletionEx().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:20 -07:00
Alexandre Julliard
be40b01c37
server: Align object attributes to a DWORD-boundary.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 12:59:32 +02:00
Jonathan Doron
fbf2631dcb
ntdll: Apply owner and group regardless of the SE_OWNER_DEFAULTED or SE_GROUP_DEFAULTED flags.
...
Signed-off-by: Jonathan Doron <jond@wizery.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-13 08:41:29 +02:00
Michael Müller
62ae2ae1a1
ntdll: Add stub for JobObjectBasicAccountingInformation and JobObjectBasicProcessIdList.
...
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-24 11:09:46 +02:00
Nikolay Sivov
7de025c970
ntdll: Fix its vs it's typos.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-01 20:57:23 -05:00
Daniel Lehman
4c89d567f6
ntdll: Remove stub from trace.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 17:18:32 +09:00
Daniel Lehman
ad83e2cd57
ntdll: Add trace for NtQueryEvent/Semaphore.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:27 +09:00
Daniel Lehman
7950562e9e
ntdll: Fix prev_count from NtReleaseMutant.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:27 +09:00
Daniel Lehman
142730ea66
ntdll: Add NtQueryMutant.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:26 +09:00
Nikolay Sivov
ce093a2acf
ntdll: Remove redundant NULL check (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-06 12:26:18 +09:00
Alexandre Julliard
6fe37f35bf
ntdll: Add tests for the length of the object attributes structure.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-30 00:30:25 +09:00
Alexandre Julliard
fe0924625f
ntdll: Add a helper to validate attributes in open calls, and use a common pattern in all calls.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:11 +09:00
Alexandre Julliard
b3064d748b
server: Implement NtOpenJobObject.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 16:38:53 +09:00
Alexandre Julliard
8b2ba27c86
ntdll: Add tests for kernel object names in the various open functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 00:41:30 +09:00
Alexandre Julliard
cd6e9c38e4
server: Fix constraints on the length of NT object names.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 20:48:08 +09:00
Alexandre Julliard
1eb69be36f
server: Pass full object attributes in the create_completion request.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-18 00:17:30 +09:00
Alexandre Julliard
b5245a15a8
server: Pass full object attributes in the create_timer request.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-18 00:17:30 +09:00
Alexandre Julliard
4c763a41ee
server: Allow the object attributes to be omitted in requests.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard
7350682aa6
server: Store the attributes in the object_attributes structure.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard
3198fb0c1c
ntdll: Add a helper function to allocate the full object_attributes structure.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Michael Müller
75c9da68e2
ntdll: Use helper function for NtWaitForMultipleObjects and NtWaitForSingleObject.
2015-08-24 18:41:34 +09:00
Sebastian Lackner
1050988997
ntdll: Improve stub for NtQueryInformationJobObject.
2015-07-31 12:08:09 +02:00
Andrew Cook
1d359a5827
server: Implement TerminateJobObject.
2015-04-07 23:15:47 +09:00
Andrew Cook
4113fd875c
ntdll: Return success for JobObjectBasicUIRestrictions.
2015-04-06 16:06:25 +09:00
Andrew Cook
47ffeaee74
server: Implement io completion messages for job objects.
2015-04-03 00:33:29 +09:00
Andrew Cook
ecd41d1de7
server: Implement job limit flags.
2015-04-03 00:33:29 +09:00
Andrew Cook
3affd63b34
server: Implement IsProcessInJob.
2015-04-01 22:34:19 +09:00
Andrew Cook
98132f0364
server: Implement AssignProcessToJobObject.
2015-04-01 22:34:18 +09:00
Andrew Cook
0e78b0248d
server: Implement CreateJobObject.
2015-04-01 17:05:44 +09:00
Francois Gouget
ca1545cf17
ntdll: Remove unneeded NONAMELESSXXX directives.
2015-03-16 15:04:50 +09:00
Nikolay Sivov
7b7d8374a4
ntdll: NtWaitForMultipleObjects()'s third arguments means 'wait_any', not 'wait_all'.
2014-09-01 13:03:07 +02:00
Frédéric Delanoy
0f2bed51bd
Assorted spelling fixes.
2014-02-10 15:47:29 +01:00
Sebastian Lackner
fad29fc5d9
ntdll: Implement RtlSleepConditionVariableSRW.
2014-01-27 14:13:48 +01:00
Sebastian Lackner
899fc8d4ee
ntdll: Implement RtlTryAcquireSRWLockShared/Exclusive commands.
2014-01-27 14:13:45 +01:00
Sebastian Lackner
8ca96a9de0
ntdll: Throw STATUS_RESOURCE_NOT_OWNED when it's impossible to acquire/release the SRWLock.
2014-01-27 14:13:44 +01:00
Sebastian Lackner
31a283d4da
ntdll: Implement SRWLock functions using keyed events.
2014-01-17 11:26:38 +01:00
Frédéric Delanoy
acf22e83f6
ntdll: Avoid TRUE:FALSE conditional expressions.
2014-01-13 17:37:04 +01:00
Sebastian Lackner
5472b9f9ca
ntdll: Implement condition variable functions using keyed events.
2014-01-08 14:34:14 +01:00
Dmitry Timoshkov
bfb4f28dc5
ntdll: Implement NtQuerySemaphore/SemaphoreBasicInformation.
2013-12-26 16:51:07 +01:00
Alexandre Julliard
4af4df5af3
ntdll: Add stubs for the SRW lock functions.
2013-09-03 16:58:19 +02:00
Alexandre Julliard
fcb3e60332
ntdll: Implement the RunOnce functions.
2013-08-28 22:27:31 +02:00
Alexandre Julliard
93fbb12e65
server: Implement waiting on keyed events.
2013-08-28 11:03:38 +02:00
Alexandre Julliard
5c0b5f4dcb
ntdll: Move the select and APC support to server.c.
2013-08-26 20:36:56 +02:00
Alexandre Julliard
a56ffb6326
ntdll: Rename NTDLL_wait_for_multiple_objects to server_select since it's more generic now.
2013-08-26 20:36:22 +02:00
Alexandre Julliard
947e337480
server: Make signal and wait a separate select operation.
2013-08-26 20:34:28 +02:00
Alexandre Julliard
042e0046d4
server: Make select on all handles a separate operation.
2013-08-26 20:32:52 +02:00
Alexandre Julliard
cbdc0ec72d
ntdll: Pass a select operation structure to NTDLL_wait_for_multiple_objects.
2013-08-26 20:32:19 +02:00
Alexandre Julliard
c2ab7a625e
server: Add a structure to pass the parameters of a select request.
2013-08-26 20:24:42 +02:00
Andrew Cook
cdfee68be1
ntdll: Implement NtQueryEvent.
2013-08-26 14:27:56 +02:00
Huw Davies
97fd3f3b52
ntdll: Call the correct server request.
2013-08-22 12:34:44 +02:00
Alexandre Julliard
dbf9d71ef8
server: Add support for keyed event objects.
2013-08-21 14:24:06 +02:00
Alexandre Julliard
bf3e23bb36
ntdll: Add the keyed events entry points.
2013-08-21 14:24:06 +02:00
Dmitry Timoshkov
7cab2e99c3
ntdll: Last parameter of NtSetIoCompletion is 64-bit on 64-bit platforms.
2013-08-20 20:52:18 +02:00
Andrew Talbot
d0d28b96a4
ntdll: Avoid signed-unsigned integer comparisons.
2013-02-21 08:34:13 +01:00
Nikolay Sivov
b1c3c8c898
kernel32: Added InitOnceInitialize() implementation.
2012-07-23 12:53:24 +02:00
Alexandre Julliard
6d2063f41b
ntdll: Set the thread exit code when a thread is killed inside a wait.
2012-01-16 14:04:39 +01:00
Alexandre Julliard
3b67ad9bd4
ntdll: Fix the NtCreateEvent prototype.
...
It takes an event type, not a manual reset flag.
2010-01-18 20:34:54 +01:00
Hans Leidekker
3a43866790
ntdll: Don't return success from the NtQueryEvent stub.
2009-06-23 11:48:13 +02:00
Michael Stefaniuc
d2f6f56873
ntdll: Remove superfluous pointer casts.
2009-03-23 12:40:53 +01:00
Alexandre Julliard
cc933f586a
ntdll: Moved exit_thread and abort_thread functions to thread.c.
2009-02-20 18:07:41 +01:00
Alexandre Julliard
6db201080f
server: Make the various async I/O parameters client_ptr_t instead of void pointers.
2008-12-30 21:09:41 +01:00
Alexandre Julliard
f507ccbf52
server: Specify the user APC to call only once the system APC has executed.
2008-12-30 20:51:55 +01:00
Alexandre Julliard
f69e62207b
server: Make the arguments for CreateRemoteThread client_ptr_t instead of void pointers.
2008-12-30 15:30:11 +01:00
Alexandre Julliard
c86ec6445c
server: Make a couple of fields smaller in the apc_call_t/apc_result_t structures.
2008-12-30 15:22:45 +01:00
Alexandre Julliard
838803ce24
server: Make the address parameters in inter-process virtual memory calls client_ptr_t.
...
Add explicit padding fields in the corresponding structures.
2008-12-30 15:05:38 +01:00
Alexandre Julliard
9b92a59115
server: Make timer callback function and argument client_ptr_t instead of void pointers.
2008-12-29 17:43:01 +01:00
Alexandre Julliard
45c991937a
server: Make the select cookie a client_ptr_t instead of a void pointer.
2008-12-29 17:21:32 +01:00
Alexandre Julliard
b660aaa9ea
server: Use the same field for process and thread handle in the queue_apc request.
2008-12-26 12:33:31 +01:00
Alexandre Julliard
401f4b717a
server: Make mem_size_t always 64-bit.
2008-12-17 19:25:09 +01:00
Alexandre Julliard
f6fa72d770
server: Make async I/O transfer sizes always 32-bit.
2008-12-15 13:30:25 +01:00
Alexandre Julliard
e81d453f63
ntdll: Convert the handles to server handles in NTDLL_wait_for_multiple_objects.
2008-12-11 20:38:21 +01:00
Alexandre Julliard
d1b3d484f7
server: Add functions for conversions between server object handles and pointer-style handles.
2008-12-08 16:05:17 +01:00
Alexandre Julliard
091d9748e3
ntdll: Add stubs for all the job object functions.
2008-09-04 22:47:13 +02:00
Alexandre Julliard
5625c6079e
Get rid of the global thread.h header.
2008-03-01 11:57:00 +01:00
Andrey Turkin
7a9210fa85
server: Pass Information field from async I/O APCs.
2007-11-15 14:24:50 +01:00
Andrey Turkin
793453f768
ntdll: Make async i/o functions generate completion messages.
2007-11-15 14:23:37 +01:00
Rob Shearman
f98556c119
server: Add the name length to the object_attributes structure so that other variable length data can be present after object_attributes.
2007-10-30 14:18:05 +01:00
Rob Shearman
23df453d38
server: Make create_mapping use struct object_attributes and set the security descriptor of file mapping objects.
2007-10-26 12:45:29 +02:00
Rob Shearman
1f86321964
server: Make create_mutex use struct object_attributes and set the security descriptor of mutex objects.
2007-10-26 12:44:51 +02:00
Rob Shearman
b0e5fb4384
server: Make create_semaphore use struct object_attributes and set the security descriptor of semaphore objects.
2007-10-26 12:44:26 +02:00
Rob Shearman
dd9e392796
server: Use the security descriptor passed in when creating events.
2007-10-25 12:47:22 +02:00
Alexandre Julliard
235532ce28
server: Use the file_pos_t type for file sizes and offsets in the protocol structures.
2007-10-10 14:06:25 +02:00
Andrey Turkin
477582401b
server: Implement server-side completion queues and operations on them.
2007-09-26 13:56:43 +02:00
Michael Stefaniuc
3fd2f084db
ntdll: Match the definition of NtQueryEvent() with its declaration.
2007-07-30 14:12:45 +02:00
Alexandre Julliard
fec5117e91
server: Merge APC processing into the select request.
...
This is needed to return the correct value when one of the handles
being waited on is set to signaled state by the APC.
2007-07-16 16:14:45 +02:00
Andrey Turkin
ad5f94d0f7
ntdll: Stub and document IoCompletion APIs.
2007-06-08 13:29:31 +02:00
Alexandre Julliard
7c6bc78b90
ntdll: Get rid of the num_async_io counter in the TEB.
2007-06-04 18:17:16 +02:00
Dmitry Timoshkov
e142779b09
ntdll: Fix compilation warnings in 64-bit mode.
2007-05-23 13:10:20 +02:00
Alexandre Julliard
aaf477f292
server: Change the timeout handling to use NT-style 64-bit timeouts everywhere.
2007-04-17 20:08:59 +02:00
Alexandre Julliard
72bff2e445
server: Add support for restarting an async I/O when the client side couldn't finish it right away.
2007-04-10 17:07:27 +02:00