Fixed initialization, no need init logs and network if configuration not ready.

bug-68
XMRig 2017-08-04 21:47:43 +03:00
parent 92d787c817
commit 1720d3e096
3 changed files with 12 additions and 5 deletions

View File

@ -59,6 +59,9 @@ App::App(int argc, char **argv) :
Cpu::init();
m_options = Options::parse(argc, argv);
if (!m_options) {
return;
}
Log::init();
@ -91,7 +94,7 @@ App::~App()
int App::exec()
{
if (!m_options->isReady()) {
if (!m_options) {
return 0;
}

View File

@ -181,11 +181,14 @@ static char *defaultConfigName()
Options *Options::parse(int argc, char **argv)
{
if (!m_self) {
m_self = new Options(argc, argv);
Options *options = new Options(argc, argv);
if (options->isReady()) {
m_self = options;
return m_self;
}
return m_self;
delete options;
return nullptr;
}

View File

@ -57,7 +57,6 @@ public:
inline bool background() const { return m_background; }
inline bool colors() const { return m_colors; }
inline bool doubleHash() const { return m_doubleHash; }
inline bool isReady() const { return m_ready; }
inline bool syslog() const { return m_syslog; }
inline const char *logFile() const { return m_logFile; }
inline const std::vector<Url*> &pools() const { return m_pools; }
@ -76,6 +75,8 @@ private:
Options(int argc, char **argv);
~Options();
inline bool isReady() const { return m_ready; }
static Options *m_self;
bool parseArg(int key, const char *arg);