Browse Source

Maintain only one unlock position in parse_submit

master
Con Kolivas 10 years ago
parent
commit
8fab45147d
  1. 6
      src/stratifier.c

6
src/stratifier.c

@ -1913,8 +1913,7 @@ static json_t *parse_submit(stratum_instance_t *client, json_t *json_msg,
json_set_string(json_msg, "reject-reason", SHARE_ERR(err)); json_set_string(json_msg, "reject-reason", SHARE_ERR(err));
strcpy(idstring, job_id); strcpy(idstring, job_id);
ASPRINTF(&fname, "%s.sharelog", current_workbase->logdir); ASPRINTF(&fname, "%s.sharelog", current_workbase->logdir);
ck_runlock(&workbase_lock); goto out_unlock;
goto out;
} }
share = true; share = true;
wdiff = wb->diff; wdiff = wb->diff;
@ -1950,6 +1949,9 @@ static json_t *parse_submit(stratum_instance_t *client, json_t *json_msg,
out_unlock: out_unlock:
ck_runlock(&workbase_lock); ck_runlock(&workbase_lock);
if (unlikely(!share))
goto out;
if (submit) if (submit)
submit_share(client, id, nonce2, ntime, nonce, json_integer_value(json_object_get(json_msg, "id"))); submit_share(client, id, nonce2, ntime, nonce, json_integer_value(json_object_get(json_msg, "id")));

Loading…
Cancel
Save