int main (int argc, char *argv []) { init_graph(); context = zmq_init (1); send_hashes = zmq_socket (context, ZMQ_PUSH); zmq_connect (send_hashes, "tcp://localhost:5557"); recv_hashes = zmq_socket (context, ZMQ_SUB); zmq_connect (recv_hashes, "tcp://localhost:5556"); recv_work = zmq_socket (context, ZMQ_REP); int wport = zsocket_bind(recv_work, "tcp://*:*"); printf("Waiting for work on port %i\n",wport); recv_ctrl = zmq_socket (context, ZMQ_PULL); int cport = zsocket_bind(recv_ctrl, "tcp://*:*"); printf("Waiting for controlmessages on port %i\n",cport); char *filter = ""; zmq_setsockopt (recv_hashes, ZMQ_SUBSCRIBE, filter, strlen (filter)); pthread_t worker; pthread_create (&worker, NULL, update_hashes, (void*) &context); pthread_t stats; pthread_create (&stats, NULL, print_stats, NULL); printf("starting\n"); // enqueue(root,digest); // while (1) { work_hard(); count++; } running = 0; printf("%d %d\n",count,count_elements()); printf("Hit: %d Cache: %d\n",hit,cache); zmq_close (send_hashes); zmq_close (recv_hashes); zmq_term (context); return 0; }
void do_something (int shall_i_work) { if (shall_i_work) { work_hard (); work_hard (); work_hard (); work_hard (); work_hard (); work_hard (); work_hard (); work_hard (); } }