Author: greatlrd Date: Tue Jul 4 00:23:48 2006 New Revision: 22805
URL: http://svn.reactos.org/svn/reactos?rev=22805&view=rev Log: 2 of 4 commit (sorry my svn clinet is crazy for moment) Commit w3seek patch from bug 1609 : file attachment (id=910) The attached patch implements QueueUserWorkItem()/RtlQueueWorkItem() (lacks optimizations!!!). WINE's latest rpcrt4 relies on it.
1. Implement QueueUserWorkItem()/RtlQueueWorkItem() : 2. A slightly optimized 3. Supports WT_TRANSFER_IMPERSONATION 4. Slightly improved handling of growing/shrinking the pool by assuming work items with WT_EXECUTELONGFUNCTION run longer 5. Fixes a hack that made a worker thread always terminate if there were at least one more thread available
Modified: trunk/reactos/include/ndk/rtlfuncs.h trunk/reactos/include/psdk/winnt.h
Modified: trunk/reactos/include/ndk/rtlfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/rtlfuncs.h?rev=... ============================================================================== --- trunk/reactos/include/ndk/rtlfuncs.h (original) +++ trunk/reactos/include/ndk/rtlfuncs.h Tue Jul 4 00:23:48 2006 @@ -1933,6 +1933,18 @@ #define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
// +// Thread Pool Functions +// + +NTSYSAPI +NTSTATUS +NTAPI +RtlQueueWorkItem( + IN WORKERCALLBACKFUNC Function, + IN PVOID Context OPTIONAL, + IN ULONG Flags); + +// // Environment/Path Functions // NTSYSAPI
Modified: trunk/reactos/include/psdk/winnt.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=22... ============================================================================== --- trunk/reactos/include/psdk/winnt.h (original) +++ trunk/reactos/include/psdk/winnt.h Tue Jul 4 00:23:48 2006 @@ -666,6 +666,7 @@ #define LANG_ESTONIAN 0x25 #define LANG_LATVIAN 0x26 #define LANG_LITHUANIAN 0x27 +#define LANG_TAJIK 0x28 #define LANG_FARSI 0x29 #define LANG_VIETNAMESE 0x2a #define LANG_ARMENIAN 0x2b @@ -804,6 +805,7 @@ #define SUBLANG_SPANISH_PUERTO_RICO 0x14 #define SUBLANG_SWEDISH 0x01 #define SUBLANG_SWEDISH_FINLAND 0x02 +#define SUBLANG_TAJIK_TAJIKISTAN 0x01 #define SUBLANG_THAI_THAILAND 0x1 #define SUBLANG_URDU_PAKISTAN 0x01 #define SUBLANG_URDU_INDIA 0x02 @@ -1071,6 +1073,8 @@ #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 #define IMAGE_DIRECTORY_ENTRY_IAT 12 +#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 +#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 #define IMAGE_SCN_TYPE_REG 0 #define IMAGE_SCN_TYPE_DSECT 1 #define IMAGE_SCN_TYPE_NOLOAD 2 @@ -1482,12 +1486,16 @@ #define VER_SUITE_BLADE 1024 #define WT_EXECUTEDEFAULT 0x00000000 #define WT_EXECUTEINIOTHREAD 0x00000001 +#define WT_EXECUTEINUITHREAD 0x00000002 #define WT_EXECUTEINWAITTHREAD 0x00000004 #define WT_EXECUTEONLYONCE 0x00000008 #define WT_EXECUTELONGFUNCTION 0x00000010 #define WT_EXECUTEINTIMERTHREAD 0x00000020 +#define WT_EXECUTEINPERSISTENTIOTHREAD 0x00000040 #define WT_EXECUTEINPERSISTENTTHREAD 0x00000080 #define WT_TRANSFER_IMPERSONATION 0x00000100 +#define WT_SET_MAX_THREADPOOL_THREADS(flags,limit) ((flags)|=(limit)<<16) +typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID); #if (_WIN32_WINNT >= 0x0501) #define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION 1 #define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION 2