fix race condition in a cleaner way.
This commit is contained in:
parent
9f6684b956
commit
9e0fccb2e0
|
@ -349,10 +349,6 @@ static void
|
||||||
async_start_node_work(uv_work_t *req) {
|
async_start_node_work(uv_work_t *req) {
|
||||||
async_node_data *node_data = static_cast<async_node_data*>(req->data);
|
async_node_data *node_data = static_cast<async_node_data*>(req->data);
|
||||||
start_node();
|
start_node();
|
||||||
while (!pwalletMain) {
|
|
||||||
useconds_t usec = 100 * 1000;
|
|
||||||
usleep(usec);
|
|
||||||
}
|
|
||||||
node_data->result = (char *)strdup("start_node(): bitcoind opened.");
|
node_data->result = (char *)strdup("start_node(): bitcoind opened.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,8 +428,14 @@ start_node(void) {
|
||||||
|
|
||||||
(boost::thread *)new boost::thread(boost::bind(&start_node_thread));
|
(boost::thread *)new boost::thread(boost::bind(&start_node_thread));
|
||||||
|
|
||||||
// horrible fix for a race condition
|
// wait for wallet to be instantiated
|
||||||
sleep(2);
|
// this also avoids a race condition with signals not being set up
|
||||||
|
while (!pwalletMain) {
|
||||||
|
useconds_t usec = 100 * 1000;
|
||||||
|
usleep(usec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// drop the bitcoind signal handlers - we want our own
|
||||||
signal(SIGINT, SIG_DFL);
|
signal(SIGINT, SIG_DFL);
|
||||||
signal(SIGHUP, SIG_DFL);
|
signal(SIGHUP, SIG_DFL);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue