Fix threading issue when initializing public params.
This commit is contained in:
parent
f398a94766
commit
13e9a639b7
|
@ -5,6 +5,7 @@
|
||||||
#include "zcash/util.h"
|
#include "zcash/util.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <mutex>
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
#include <boost/format.hpp>
|
#include <boost/format.hpp>
|
||||||
|
@ -24,8 +25,9 @@ namespace libzcash {
|
||||||
|
|
||||||
#include "zcash/circuit/gadget.tcc"
|
#include "zcash/circuit/gadget.tcc"
|
||||||
|
|
||||||
|
std::once_flag init_public_params_once_flag;
|
||||||
|
|
||||||
CCriticalSection cs_ParamsIO;
|
CCriticalSection cs_ParamsIO;
|
||||||
CCriticalSection cs_InitializeParams;
|
|
||||||
CCriticalSection cs_LoadKeys;
|
CCriticalSection cs_LoadKeys;
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
@ -79,9 +81,7 @@ public:
|
||||||
~JoinSplitCircuit() {}
|
~JoinSplitCircuit() {}
|
||||||
|
|
||||||
static void initialize() {
|
static void initialize() {
|
||||||
LOCK(cs_InitializeParams);
|
std::call_once (init_public_params_once_flag, ppzksnark_ppT::init_public_params);
|
||||||
|
|
||||||
ppzksnark_ppT::init_public_params();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setProvingKeyPath(std::string path) {
|
void setProvingKeyPath(std::string path) {
|
||||||
|
|
Loading…
Reference in New Issue