Module: wine Branch: master Commit: d56984a03d3a5e8a256ff5a46540478cba01c191 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d56984a03d3a5e8a256ff5a465...
Author: Sebastian Lackner sebastian@fds-team.de Date: Wed Jul 1 02:55:53 2015 +0200
ntdll: Implement TpSetPoolMaxThreads.
---
dlls/ntdll/ntdll.spec | 1 + dlls/ntdll/threadpool.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index cd4e853..f023443 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -972,6 +972,7 @@ @ stdcall RtlxUnicodeStringToOemSize(ptr) RtlUnicodeStringToOemSize @ stdcall TpAllocPool(ptr ptr) @ stdcall TpReleasePool(ptr) +@ stdcall TpSetPoolMaxThreads(ptr long) @ stdcall TpSimpleTryPost(ptr ptr ptr) @ stdcall -ret64 VerSetConditionMask(int64 long long) @ stdcall WinSqmIsOptedIn() diff --git a/dlls/ntdll/threadpool.c b/dlls/ntdll/threadpool.c index d8dc929..19f288a 100644 --- a/dlls/ntdll/threadpool.c +++ b/dlls/ntdll/threadpool.c @@ -1466,6 +1466,21 @@ VOID WINAPI TpReleasePool( TP_POOL *pool ) }
/*********************************************************************** + * TpSetPoolMaxThreads (NTDLL.@) + */ +VOID WINAPI TpSetPoolMaxThreads( TP_POOL *pool, DWORD maximum ) +{ + struct threadpool *this = impl_from_TP_POOL( pool ); + + TRACE( "%p %u\n", pool, maximum ); + + RtlEnterCriticalSection( &this->cs ); + this->max_workers = max( maximum, 1 ); + this->min_workers = min( this->min_workers, this->max_workers ); + RtlLeaveCriticalSection( &this->cs ); +} + +/*********************************************************************** * TpSimpleTryPost (NTDLL.@) */ NTSTATUS WINAPI TpSimpleTryPost( PTP_SIMPLE_CALLBACK callback, PVOID userdata,