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)); json_object_set_nocheck(val, "id", json_integer(share->id));
/* Add the new message to the psend list */ /* Add the new message to the psend list */
mutex_lock(&proxi->psend_lock); mutex_lock(&proxy->psend_lock);
DL_APPEND(proxi->psends, msg); DL_APPEND(proxy->psends, msg);
pthread_cond_signal(&proxi->psend_cond); pthread_cond_signal(&proxy->psend_cond);
mutex_unlock(&proxi->psend_lock); mutex_unlock(&proxy->psend_lock);
} }
static void clear_notify(notify_instance_t *ni) 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; proxy_t *proxy;
json_t *val; json_t *val;
if (unlikely(!sdata->current_workbase)) {
LOGINFO("No current workbase to update diff yet");
return;
}
if (unlikely(strlen(cmd) < 6)) { if (unlikely(strlen(cmd) < 6)) {
LOGWARNING("Zero length string passed to update_diff"); LOGWARNING("Zero length string passed to update_diff");
return; return;
@ -1320,6 +1315,11 @@ static void update_diff(ckpool_t *ckp, const char *cmd)
dsdata = proxy->sdata; dsdata = proxy->sdata;
if (unlikely(!dsdata->current_workbase)) {
LOGINFO("No current workbase to update diff yet");
return;
}
ck_wlock(&dsdata->workbase_lock); ck_wlock(&dsdata->workbase_lock);
old_diff = proxy->diff; old_diff = proxy->diff;
dsdata->current_workbase->diff = dsdata->proxy->diff = diff; dsdata->current_workbase->diff = dsdata->proxy->diff = diff;

Loading…
Cancel
Save