From d43120ca4a68006811b3645d0d9065ac098ddc65 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 24 Feb 2008 14:09:02 +0000 Subject: First part of my evil empire! BWAHAHAHAHAHAHAH...HAHAHAHA...AHAHAH *cough* err i mean... remote includes (BWAHAHAHA) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9013 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/configreader.cpp | 7 +++++++ src/inspircd.cpp | 19 +++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) (limited to 'src') 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); -- cgit v1.2.3