Browse Source

Receive diff from the upstream proxy and add share submission to the correct psend list

master
Con Kolivas 10 years ago
parent
commit
f15fbdbc70
  1. 8
      src/generator.c
  2. 10
      src/stratifier.c

8
src/generator.c

@ -1285,10 +1285,10 @@ static void submit_share(gdata_t *gdata, json_t *val)
json_object_set_nocheck(val, "id", json_integer(share->id));
/* Add the new message to the psend list */
mutex_lock(&proxi->psend_lock);
DL_APPEND(proxi->psends, msg);
pthread_cond_signal(&proxi->psend_cond);
mutex_unlock(&proxi->psend_lock);
mutex_lock(&proxy->psend_lock);
DL_APPEND(proxy->psends, msg);
pthread_cond_signal(&proxy->psend_cond);
mutex_unlock(&proxy->psend_lock);
}
static void clear_notify(notify_instance_t *ni)

10
src/stratifier.c

@ -1288,11 +1288,6 @@ static void update_diff(ckpool_t *ckp, const char *cmd)
proxy_t *proxy;
json_t *val;
if (unlikely(!sdata->current_workbase)) {
LOGINFO("No current workbase to update diff yet");
return;
}
if (unlikely(strlen(cmd) < 6)) {
LOGWARNING("Zero length string passed to update_diff");
return;
@ -1320,6 +1315,11 @@ static void update_diff(ckpool_t *ckp, const char *cmd)
dsdata = proxy->sdata;
if (unlikely(!dsdata->current_workbase)) {
LOGINFO("No current workbase to update diff yet");
return;
}
ck_wlock(&dsdata->workbase_lock);
old_diff = proxy->diff;
dsdata->current_workbase->diff = dsdata->proxy->diff = diff;

Loading…
Cancel
Save