Commit Graph

96 Commits

Author SHA1 Message Date
Sebastian Lackner a9dd37be68 ntdll: Implement TpCallbackLeaveCriticalSectionOnCompletion.
An instance can only have one completion of each type, trying to add a
second one leads to an exception on Windows.
2015-07-02 14:53:21 +09:00
Sebastian Lackner eb974bcd7a ntdll: Implement instance objects and the TpCallbackMayRunLong function.
The instance is marked as long-running even if TpCallbackMayRunLong fails,
a second call will lead to an exception on Windows.
2015-07-02 14:53:02 +09:00
Sebastian Lackner 8fc2430c2a ntdll: Implement threadpool RaceDll environment variable. 2015-07-02 14:52:44 +09:00
Sebastian Lackner fa114f122b ntdll: Add support for threadpool finalization callback. 2015-07-02 14:52:38 +09:00
Sebastian Lackner 1839ce8697 ntdll: Add support for threadpool group cancel callback. 2015-07-02 14:52:27 +09:00
Sebastian Lackner e4c38f6bad ntdll: Implement threadpool work item functions. 2015-07-01 19:18:15 +09:00
Sebastian Lackner 68d92bceed ntdll: Implement threadpool cleanup group functions. 2015-07-01 19:18:14 +09:00
Sebastian Lackner 7d9ec31e19 ntdll: Implement TpSetPoolMinThreads. 2015-07-01 19:18:14 +09:00
Sebastian Lackner d56984a03d ntdll: Implement TpSetPoolMaxThreads. 2015-07-01 19:18:13 +09:00
Sebastian Lackner db9fc9141e ntdll: Implement TpSimpleTryPost and basic threadpool infrastructure. 2015-07-01 19:18:13 +09:00
Sebastian Lackner 41b24f2168 ntdll: Move all structs and definitions to the beginning in threadpool.c. 2015-03-17 14:52:07 +09:00
Sebastian Lackner ae309c2d00 ntdll: Move static threadpool variables into a struct. 2015-03-10 15:33:20 +09:00
Nikolay Sivov 7b7d8374a4 ntdll: NtWaitForMultipleObjects()'s third arguments means 'wait_any', not 'wait_all'. 2014-09-01 13:03:07 +02:00
Sebastian Lackner 7ba4d119c1 ntdll: Use condition variable for RtlQueueWorkItem implementation. 2014-03-12 10:41:26 +01:00
Sebastian Lackner 9277fcfdb4 ntdll: Fix possible race-condition in iocp poller code. 2014-03-11 19:39:29 +01:00
Sebastian Lackner 23adc9aaed ntdll: Fix incorrect value passed to RtlDeleteTimerQueueEx. 2014-01-30 10:35:53 +01:00
Alexandre Julliard 2810c5647f ntdll: Add a magic number to validate timer queue pointers. 2013-08-20 20:13:58 +02:00
Jörg Höhle 2f0b93ca13 ntdll: Stabilize CreateTimerQueueTimer callbacks over time. 2013-02-19 19:50:54 +01:00
Jörg Höhle 4f6db78ca0 ntdll: Use the monotonic time counter also for timer queues. 2013-02-07 15:54:34 +01:00
Jörg Höhle 602807c2a5 ntdll: Do not execute callbacks past DeleteTimer(INVALID_HANDLE_VALUE). 2012-10-31 18:08:02 +01:00
Michael Stefaniuc abef6ab366 ntdll: Avoid TRUE:FALSE conditional expressions. 2012-08-14 11:58:40 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Jörg Höhle bcd2d0ec5b ntdll: Use list_empty() instead of list_count() == 0. 2011-06-16 11:57:25 +02:00
Vitaliy Margolen aafa74908b ntdll: Mask invalid flags for RtlQueueWorkItem. 2010-11-11 18:12:47 +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
Alexandre Julliard 82ebebc671 ntdll: Use INT_MAX for the semaphore count since LONG_MAX won't work on 64-bit. 2008-12-31 21:55:11 +01:00
Jeff Zaroyko 6c597bac2e ntdll: Avoid NULL deref in RtlDeleteTimer. 2008-12-01 14:22:12 +01:00
Gerald Pfeifer e375b0c4a2 Add return statements to avoid gcc warnings. 2008-08-20 12:53:22 +02:00
Dan Hipschman a148e190af ntdll: Add support for a default timer queue. 2008-07-30 12:44:25 +02:00
Dan Hipschman 2b287a4489 ntdll: Fix a small timer-queue bug whereby a deleted timer may still expire. 2008-07-28 11:32:21 +02:00
Dan Hipschman 4c64d0cdfa ntdll: Implement RtlDeleteTimer for kernel32's DeleteTimerQueueTimer. 2008-07-25 14:09:15 +02:00
Dan Hipschman 396e47ef5c ntdll: Implement RtlUpdateTimer for kernel32's ChangeTimerQueueTimer. 2008-07-25 14:09:15 +02:00
Dan Hipschman 5ef54c4cec ntdll: Implement the timer queue thread. 2008-07-25 14:09:15 +02:00
Dan Hipschman d343f2baf7 ntdll: Implement RtlCreateTimer for kernel32's CreateTimerQueueTimer. 2008-07-23 11:24:03 +02:00
Dan Hipschman 20a1ca2bbf ntdll: Implement [Rtl]Create/DeleteTimerQueue[Ex]. 2008-07-22 13:24:21 +02:00
Andrew Talbot 00981b580a ntdll: Remove unneeded casts. 2008-01-14 13:10:00 +01:00
Rob Shearman 25bc7023ba ntdll: Implement RtlRegisterWait, RtlDeregisterWait and RtlDeregisterWaitEx. 2008-01-02 14:30:08 +01:00
Andrew Talbot 1ebe82af65 ntdll: Remove unneeded casts. 2007-12-31 16:45:22 +01:00
Andrey Turkin 343f2c1b30 ntdll: Implement BindIoCompletionCallback. 2007-12-21 13:52:34 +01:00
Andrew Talbot 0108667754 ntdll: Replace inline static with static inline. 2007-03-17 20:03:57 +01:00
Rob Shearman 7e1fead3fb ntdll: Don't print a fixme in RtlQueueUserWorkItem if WT_EXECUTELONGFUNCTION is specified
since that is what the current behaviour is tuned for.
2007-01-04 21:14:49 +01:00
Hans Leidekker f7b0ba7aa7 ntdll: Win64 printf format warning fixes. 2006-10-18 12:35:26 +02:00
Mike McCormack 2dca7aa2e2 ntdll: Use RTL_CRITICAL_SECTION not CRITICAL_SECTION. 2006-08-23 12:01:00 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman f40f81b6d5 ntdll: Start of pooling support for RtlQueueWorkItem.
Start of pooling support for RtlQueueWorkItem. The algorithm
implmented is very simple - if there are no free threads, create a new
one.
2006-03-21 16:19:06 +01:00
Robert Shearman a18bdf13f7 ntdll: Very crude implementation of RtlQueueWorkItem. 2006-03-13 13:34:06 +01:00