Update to the latest SourcePawn and AMTL.

This commit is contained in:
David Anderson 2016-03-13 13:58:46 -07:00
parent 19bcc8417d
commit f7bb423f06
8 changed files with 25 additions and 16 deletions

View File

@ -537,7 +537,9 @@ bool DBManager::AddToThreadQueue(IDBThreadOperation *op, PrioQueueLevel prio)
if (!m_Worker) if (!m_Worker)
{ {
m_Worker = new ke::Thread(this, "SM SQL Worker"); m_Worker = new ke::Thread([this]() -> void {
Run();
}, "SM SQL Worker");
if (!m_Worker->Succeeded()) if (!m_Worker->Succeeded())
{ {
if (!s_OneTimeThreaderErrorMsg) if (!s_OneTimeThreaderErrorMsg)

View File

@ -65,8 +65,7 @@ class DBManager :
public SMGlobalClass, public SMGlobalClass,
public IHandleTypeDispatch, public IHandleTypeDispatch,
public ITextListener_SMC, public ITextListener_SMC,
public IPluginsListener, public IPluginsListener
public ke::IRunnable
{ {
public: public:
DBManager(); DBManager();

View File

@ -107,16 +107,20 @@ IThreadHandle *PosixThreader::MakeThread(IThread *pThread, const ThreadParams *p
if (params == NULL) if (params == NULL)
params = &g_defparams; params = &g_defparams;
ke::AutoPtr<ThreadHandle> pHandle(new ThreadHandle(this, pThread, params)); ThreadHandle* pHandle = new ThreadHandle(this, pThread, params);
pHandle->m_thread = new ke::Thread(pHandle.get(), "SourceMod"); pHandle->m_thread = new ke::Thread([pHandle]() -> void {
if (!pHandle->m_thread->Succeeded()) pHandle->Run();
}, "SourceMod");
if (!pHandle->m_thread->Succeeded()) {
delete pHandle;
return NULL; return NULL;
}
if (!(params->flags & Thread_CreateSuspended)) if (!(params->flags & Thread_CreateSuspended))
pHandle->Unpause(); pHandle->Unpause();
return pHandle.take(); return pHandle;
} }
IEventSignal *PosixThreader::MakeEventSignal() IEventSignal *PosixThreader::MakeEventSignal()

View File

@ -41,7 +41,7 @@ using namespace SourceMod;
class PosixThreader : public IThreader class PosixThreader : public IThreader
{ {
public: public:
class ThreadHandle : public IThreadHandle, public ke::IRunnable class ThreadHandle : public IThreadHandle
{ {
friend class PosixThreader; friend class PosixThreader;
public: public:

View File

@ -106,11 +106,15 @@ IThreadHandle *WinThreader::MakeThread(IThread *pThread, const ThreadParams *par
if (params == NULL) if (params == NULL)
params = &g_defparams; params = &g_defparams;
ke::AutoPtr<ThreadHandle> pHandle(new ThreadHandle(this, pThread, params)); ThreadHandle* pHandle = new ThreadHandle(this, pThread, params);
pHandle->m_thread = new ke::Thread(pHandle.get(), "SourceMod"); pHandle->m_thread = new ke::Thread([pHandle]() -> void {
if (!pHandle->m_thread->Succeeded()) pHandle->Run();
return NULL; }, "SourceMod");
if (!pHandle->m_thread->Succeeded()) {
delete pHandle;
return nullptr;
}
if (pHandle->m_params.prio != ThreadPrio_Normal) if (pHandle->m_params.prio != ThreadPrio_Normal)
pHandle->SetPriority(pHandle->m_params.prio); pHandle->SetPriority(pHandle->m_params.prio);
@ -118,7 +122,7 @@ IThreadHandle *WinThreader::MakeThread(IThread *pThread, const ThreadParams *par
if (!(params->flags & Thread_CreateSuspended)) if (!(params->flags & Thread_CreateSuspended))
pHandle->Unpause(); pHandle->Unpause();
return pHandle.take(); return pHandle;
} }
IEventSignal *WinThreader::MakeEventSignal() IEventSignal *WinThreader::MakeEventSignal()

View File

@ -42,7 +42,7 @@ using namespace SourceMod;
class WinThreader : public IThreader class WinThreader : public IThreader
{ {
public: public:
class ThreadHandle : public IThreadHandle, public ke::IRunnable class ThreadHandle : public IThreadHandle
{ {
friend class WinThreader; friend class WinThreader;
friend DWORD WINAPI Win32_ThreadGate(LPVOID param); friend DWORD WINAPI Win32_ThreadGate(LPVOID param);

@ -1 +1 @@
Subproject commit 522057068a520d75acca00f6682f4d06d1ae18a4 Subproject commit ae57753e79a957d8578421f37043e6bea1603f65

@ -1 +1 @@
Subproject commit c0cfda875390ae0cdd9055e53d0a06db6ce5ea18 Subproject commit 594bfbb5e46a47ed57af28786254e9fb8c2c506f