int main(int argc, char *argv[]) { int ch, i, nsenders = 1, nreceivers = 1, nbuf = 10; ACL_CHANNEL *chan; while ((ch = getopt(argc, argv, "hn:s:r:b:d:")) > 0) { switch (ch) { case 'h': usage(argv[0]); return 0; case 'n': __max = (unsigned long) atol(optarg); break; case 's': nsenders = atoi(optarg); break; case 'r': nreceivers = atoi(optarg); break; case 'b': nbuf = atoi(optarg); break; case 'd': __display = atoi(optarg); break; default: break; } } printf("max_count: %d\r\n", __max); chan = acl_channel_create(sizeof(unsigned long), nbuf); for (i = 0; i < nsenders; i++) acl_fiber_create(fiber_producer, chan, 320000); for (i = 0; i < nreceivers; i++) acl_fiber_create(fiber_consumer, chan, 320000); acl_fiber_schedule(); acl_channel_free(chan); return 0; }
int main(int argc, char *argv[]) { int ch, i, conn_timeout = 2, rw_timeout = 2; acl::string addr("127.0.0.1:6379"); while ((ch = getopt(argc, argv, "hs:n:c:r:t:")) > 0) { switch (ch) { case 'h': usage(argv[0]); return 0; case 's': addr = optarg; break; case 'n': __oper_count = atoi(optarg); break; case 'c': __fibers_count = atoi(optarg); __fibers_max = __fibers_count; break; case 'r': rw_timeout = atoi(optarg); break; case 't': conn_timeout = atoi(optarg); break; default: break; } } acl::acl_cpp_init(); acl::redis_client_cluster cluster; cluster.set(addr.c_str(), 0, conn_timeout, rw_timeout); gettimeofday(&__begin, NULL); for (i = 0; i < __fibers_count; i++) acl_fiber_create(fiber_redis, &cluster, 327680); acl_fiber_schedule(); return 0; }
int main(int argc, char *argv[]) { int ch, i, conn_timeout = 2, rw_timeout = 2, redis_connections = 10; acl::string addr("127.0.0.1:6379"); while ((ch = getopt(argc, argv, "hs:n:c:p:r:t:")) > 0) { switch (ch) { case 'h': usage(argv[0]); return 0; case 's': addr = optarg; break; case 'n': __oper_count = atoi(optarg); break; case 'c': __fibers_count = atoi(optarg); __fibers_max = __fibers_count; break; case 'p': redis_connections = atoi(optarg); break; case 'r': rw_timeout = atoi(optarg); break; case 't': conn_timeout = atoi(optarg); break; default: break; } } acl::acl_cpp_init(); // declare redis cluster acl::redis_client_cluster cluster; cluster.set(addr, 0, conn_timeout, rw_timeout); // declare fiber sem acl::fiber_sem sem(redis_connections); std::vector<fiber_redis*> fibers; gettimeofday(&__begin, NULL); for (i = 0; i < __fibers_count; i++) { fiber_redis* fiber = new fiber_redis(cluster, sem); fibers.push_back(fiber); fiber->start(320000); } acl_fiber_schedule(); for (std::vector<fiber_redis*>::iterator it = fibers.begin(); it != fibers.end(); ++it) { delete *it; } return 0; }
void fiber::schedule(void) { acl_fiber_schedule(); }
int main(int argc, char *argv[]) { int ch, conn_timeout = 0, rw_timeout = 0, nworkers = 10; acl::string addr("127.0.0.1:6379"), cmd("set"); while ((ch = getopt(argc, argv, "hs:n:c:r:t:w:a:")) > 0) { switch (ch) { case 'h': usage(argv[0]); return 0; case 'a': cmd = optarg; break; case 'w': nworkers = atoi(optarg); break; case 's': addr = optarg; break; case 'n': __oper_count = atoi(optarg); break; case 'c': __fibers_max = atoi(optarg); break; case 'r': rw_timeout = atoi(optarg); break; case 't': conn_timeout = atoi(optarg); break; default: break; } } acl::acl_cpp_init(); __redis_cluster.set(addr.c_str(), 0, conn_timeout, rw_timeout); //gettimeofday(&__begin, NULL); if (nworkers > __fibers_max) nworkers = __fibers_max; nworkers = __fibers_max; MYCHANS mychans; mychans.size = nworkers; mychans.off = 0; mychans.chans = new MYCHAN[nworkers]; for (int i = 0; i < nworkers; i++) { mychans.chans[i].chan = acl_channel_create(sizeof(void*), 1000); mychans.chans[i].cmd = cmd; } __workers = new ACL_FIBER*[nworkers + 1]; for (int i = 0; i < nworkers; i++) __workers[i] = acl_fiber_create(fiber_worker, &mychans.chans[i], 32000); __workers[nworkers] = NULL; __fibers_count = nworkers; for (int i = 0; i < __fibers_max; i++) (void) acl_fiber_create(fiber_result, &mychans, 32000); __chan_exit = acl_channel_create(sizeof(unsigned long), 1000); acl_fiber_create(fiber_wait, __chan_exit, 32000); acl_fiber_schedule(); for (int i = 0; i < nworkers; i++) acl_channel_free(mychans.chans[i].chan); delete [] mychans.chans; acl_channel_free(__chan_exit); delete [] __workers; return 0; }