diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/configreader.cpp | 7 | ||||
-rw-r--r-- | src/inspircd.cpp | 19 |
2 files changed, 18 insertions, 8 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp index 92d2c9aea..a8c4dbaee 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -2305,3 +2305,10 @@ bool DoneELine(ServerConfig* conf, const char* tag) conf->GetInstance()->XLines->CheckELines(); return true; } + +void ConfigReaderThread::Run() +{ + ServerInstance->Config->Read(true, NULL, 0); + ServerInstance->Config->Read(true, NULL, 1); +} + diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 8999e7ccc..e1c40199a 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -308,6 +308,11 @@ InspIRCd::InspIRCd(int argc, char** argv) SE = SEF->Create(this); delete SEF; + + ThreadEngineFactory* tef = new ThreadEngineFactory(); + this->Threads = tef->Create(this); + delete tef; + this->s_signal = 0; // Create base manager classes early, so nothing breaks @@ -477,15 +482,13 @@ InspIRCd::InspIRCd(int argc, char** argv) SE->RecoverFromFork(); - /* Read config, pass 0. At the end if this pass, - * the Config->IncludeFiles is populated, we call - * Config->StartDownloads to initialize the downlaods of all - * these files. + /* During startup we don't actually initialize this + * in the thread engine. */ - Config->Read(true, NULL, 0); - Config->DoDownloads(); - /* We have all the files we can get, initiate pass 1 */ - Config->Read(true, NULL, 1); + this->ConfigThread = new ConfigReaderThread(this); + ConfigThread->Run(); + delete ConfigThread; + this->ConfigThread = NULL; this->AddServerName(Config->ServerName); |