diff --git a/libethcore/EthashAux.cpp b/libethcore/EthashAux.cpp index 51a606ff8..14a44a812 100644 --- a/libethcore/EthashAux.cpp +++ b/libethcore/EthashAux.cpp @@ -49,6 +49,13 @@ EthashAux::~EthashAux() { } +EthashAux* EthashAux::get() +{ + static std::once_flag flag; + std::call_once(flag, []{s_this = new EthashAux();}); + return s_this; +} + uint64_t EthashAux::cacheSize(BlockInfo const& _header) { return ethash_get_cachesize((uint64_t)_header.number); diff --git a/libethcore/EthashAux.h b/libethcore/EthashAux.h index 47180bfd2..d5bd60d44 100644 --- a/libethcore/EthashAux.h +++ b/libethcore/EthashAux.h @@ -38,7 +38,7 @@ class EthashAux public: ~EthashAux(); - static EthashAux* get() { if (!s_this) s_this = new EthashAux(); return s_this; } + static EthashAux* get(); struct LightAllocation {