|
@@ -120,9 +120,10 @@ static struct ControllerState {
|
|
|
Worklist worklist;
|
|
Worklist worklist;
|
|
|
struct evconnlistener *listener;
|
|
struct evconnlistener *listener;
|
|
|
unsigned int problemid;
|
|
unsigned int problemid;
|
|
|
|
|
+ unsigned int dpnode_count;
|
|
|
|
|
|
|
|
ControllerState() : working(false), num_unsolved_subproblems(0),
|
|
ControllerState() : working(false), num_unsolved_subproblems(0),
|
|
|
- listener(NULL), problemid(0) {}
|
|
|
|
|
|
|
+ listener(NULL), problemid(0), dpnode_count(0) {}
|
|
|
|
|
|
|
|
// Reset the state for a new problem with the same modulus
|
|
// Reset the state for a new problem with the same modulus
|
|
|
void reset(void) {
|
|
void reset(void) {
|
|
@@ -784,6 +785,7 @@ static void controller_master_reader(struct bufferevent *bev, void *ctx)
|
|
|
|
|
|
|
|
if (len < 1) return;
|
|
if (len < 1) return;
|
|
|
|
|
|
|
|
|
|
+ char msg_id = 'I';
|
|
|
char indata[1];
|
|
char indata[1];
|
|
|
bufferevent_read(bev, indata, 1);
|
|
bufferevent_read(bev, indata, 1);
|
|
|
switch(indata[0]) {
|
|
switch(indata[0]) {
|
|
@@ -793,6 +795,9 @@ static void controller_master_reader(struct bufferevent *bev, void *ctx)
|
|
|
bufferevent_setcb(bev, controller_dpnode_reader, NULL,
|
|
bufferevent_setcb(bev, controller_dpnode_reader, NULL,
|
|
|
controller_dpnode_event_cb, ctx);
|
|
controller_dpnode_event_cb, ctx);
|
|
|
controller_dpnode_reader(bev, ctx);
|
|
controller_dpnode_reader(bev, ctx);
|
|
|
|
|
+ bufferevent_write(bev, &msg_id, sizeof(msg_id));
|
|
|
|
|
+ bufferevent_write(bev, &ctrlstate.dpnode_count, sizeof(ctrlstate.dpnode_count));
|
|
|
|
|
+ ctrlstate.dpnode_count++;
|
|
|
schedule();
|
|
schedule();
|
|
|
return;
|
|
return;
|
|
|
case 'W':
|
|
case 'W':
|