int main(){ signal(SIGPIPE,SIG_IGN); p = kn_new_engine(); if(0 != kn_redisAsynConnect(p,"127.0.0.1",6379,cb_redis_connect,cb_redis_disconnected,NULL)){ printf("kn_redisAsynConnect failed\n"); return 0; } kn_reg_timer(p,1000,timer_callback,NULL); kn_engine_run(p); return 0; }
int main(int argc,char **argv){ signal(SIGPIPE,SIG_IGN); engine_t p = kn_new_engine(); kn_sockaddr local; kn_addr_init_in(&local,argv[1],atoi(argv[2])); handle_t l = kn_new_sock(AF_INET,SOCK_STREAM,IPPROTO_TCP); kn_sock_listen(p,l,&local,on_accept,p); kn_reg_timer(p,1000,timer_callback,NULL); kn_engine_run(p); return 0; }
void *mysql_worker(void *arg) { kn_setup_mailbox(mysqlConn->engine,MODE_FAST,on_mail); mysqlConn->thd_mailbox = kn_self_mailbox(); //ping every 5 min mysqlConn->ping_timer = kn_reg_timer(mysqlConn->engine,5*60*1000,timer_callback,NULL); kn_engine_run(mysqlConn->engine); kn_del_timer(mysqlConn->ping_timer); if(mysqlConn->error){ printf("worker stop by error:%d\n",mysqlConn->error); } return NULL; }
CURLMcode kn_CURLM_add(kn_CURLM_t cm,kn_CURL_t curl,void (*cb)(kn_CURL_t,CURLMsg *message,void*),void*ud){ if(0 != kn_dlist_push(&cm->curls,(kn_dlist_node*)curl)) return CURLM_ADDED_ALREADY; curl->cb = cb; curl->ud = ud; curl->c_handle = cm; CURLMcode code = curl_multi_add_handle(cm->c_handle,curl->curl); if(code != CURLM_OK) kn_dlist_remove((kn_dlist_node*)curl); else{ curl_easy_setopt(curl->curl,CURLOPT_PRIVATE,curl); if(!cm->timer) cm->timer = kn_reg_timer(cm->e,1,timer_callback,cm); } return code; }
int main(){ signal(SIGPIPE,SIG_IGN); engine_t p = kn_new_engine(); curlm = kn_CURLM_init(p); int i = 0; for(; i < 1000; ++i){ kn_CURL_t curl = kn_curl_easy_init(); kn_curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/"); kn_curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); kn_CURLM_add(curlm,curl,cb_curl,NULL); } kn_reg_timer(p,1000,timer_callback,NULL); kn_engine_run(p); return 0; }