Example #1
0
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 ();
    }
}