mirror of
https://github.com/anope/anope.git
synced 2026-06-25 18:56:37 +02:00
Rewrote some of the socket code to allow m_ssl to be a service.
This allows modules (xmlrpc) to create and accept SSL connections. Also fixed unloading m_mysql at certain times and made the threading engine always work correctly on Windows.
This commit is contained in:
@@ -2,16 +2,39 @@
|
||||
|
||||
ThreadEngine threadEngine;
|
||||
|
||||
/** Check for finished threads
|
||||
*/
|
||||
void ThreadEngine::Process()
|
||||
{
|
||||
for (unsigned i = this->threads.size(); i > 0; --i)
|
||||
{
|
||||
Thread *t = this->threads[i - 1];
|
||||
|
||||
if (t->GetExitState())
|
||||
{
|
||||
t->Join();
|
||||
delete t;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Threads constructor
|
||||
*/
|
||||
Thread::Thread() : Exit(false)
|
||||
{
|
||||
threadEngine.threads.push_back(this);
|
||||
}
|
||||
|
||||
/** Threads destructor
|
||||
*/
|
||||
Thread::~Thread()
|
||||
{
|
||||
std::vector<Thread *>::iterator it = std::find(threadEngine.threads.begin(), threadEngine.threads.end(), this);
|
||||
|
||||
if (it != threadEngine.threads.end())
|
||||
{
|
||||
threadEngine.threads.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
/** Sets the exit state as true informing the thread we want it to shut down
|
||||
|
||||
Reference in New Issue
Block a user