Update release

This commit is contained in:
vczh
2022-12-09 16:33:25 -08:00
parent d31e9a5d4c
commit 03a5ee8544
123 changed files with 6883 additions and 6272 deletions
+2 -35
View File
@@ -1482,31 +1482,9 @@ EventObject
ThreadPoolLite
***********************************************************************/
struct ThreadPoolQueueProcArgument
{
void(*proc)(void*);
void* argument;
};
DWORD WINAPI ThreadPoolQueueProc(void* argument)
{
Ptr<ThreadPoolQueueProcArgument> proc=(ThreadPoolQueueProcArgument*)argument;
ThreadLocalStorage::FixStorages();
try
{
proc->proc(proc->argument);
ThreadLocalStorage::ClearStorages();
}
catch (...)
{
ThreadLocalStorage::ClearStorages();
}
return 0;
}
DWORD WINAPI ThreadPoolQueueFunc(void* argument)
{
Ptr<Func<void()>> proc=(Func<void()>*)argument;
auto proc=Ptr((Func<void()>*)argument);
ThreadLocalStorage::FixStorages();
try
{
@@ -1530,18 +1508,7 @@ ThreadPoolLite
bool ThreadPoolLite::Queue(void(*proc)(void*), void* argument)
{
ThreadPoolQueueProcArgument* p=new ThreadPoolQueueProcArgument;
p->proc=proc;
p->argument=argument;
if(QueueUserWorkItem(&ThreadPoolQueueProc, p, WT_EXECUTEDEFAULT))
{
return true;
}
else
{
delete p;
return false;
}
return Queue([=]() {proc(argument); });
}
bool ThreadPoolLite::Queue(const Func<void()>& proc)