Sebastian Lackner : ntdll: Implement TpSetPoolMaxThreads.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jul 1 09:06:23 CDT 2015
Module: wine
Branch: master
Commit: d56984a03d3a5e8a256ff5a46540478cba01c191
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d56984a03d3a5e8a256ff5a46540478cba01c191
Author: Sebastian Lackner <sebastian at 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,
More information about the wine-cvs
mailing list