コード例 #1
0
ファイル: connection_consumer.c プロジェクト: anurse/Haywire
void connection_consumer_start(void *arg)
{
    int rc;
    struct server_ctx *ctx;
    uv_loop_t* loop;
    
    ctx = arg;
    loop = uv_loop_new();
    listener_event_loops[ctx->index] = *loop;
    
    http_request_cache_configure_listener(loop, &listener_async_handles[ctx->index]);
    uv_barrier_wait(listeners_created_barrier);
    
    rc = uv_async_init(loop, &ctx->async_handle, connection_consumer_close);
    uv_unref((uv_handle_t*) &ctx->async_handle);
    
    /* Wait until the main thread is ready. */
    uv_sem_wait(&ctx->semaphore);
    get_listen_handle(loop, (uv_stream_t*) &ctx->server_handle);
    uv_sem_post(&ctx->semaphore);
    
    rc = uv_listen((uv_stream_t*)&ctx->server_handle, 128, connection_consumer_new_connection);
    rc = uv_run(loop, UV_RUN_DEFAULT);
    
    uv_loop_delete(loop);
}
コード例 #2
0
ファイル: timer_srv.c プロジェクト: a1406/ndproj
/* entry of  timer update client map*/
NEINT32 update_client_map(void *param)
{
	NEINT32 cm_num ;
	NEINT32 sleep = 0 ;
	//NEUINT16 session_id = 0;
	cmlist_iterator_t cm_iterator ;
	struct cm_manager *pmanger  ;
	ne_handle client;
	ne_usermsgbuf_t sendmsg;
	ne_handle listen_haneld = get_listen_handle () ;
	if(!listen_haneld) {
		ne_sleep(1000) ;
		return 0 ;
	}
//	sendmsg.msg_hdr.packet_hdr = NE_PACKHDR_INIT;		
	ne_usermsghdr_init(&sendmsg.msg_hdr);	
	NE_USERMSG_MAXID(&sendmsg) = MAXID_SYS ;
	NE_USERMSG_MINID(&sendmsg) = SYM_TEST ;
	//data = NE_USERMSG_DATA(&sendmsg) ;
	strcpy(NE_USERMSG_DATA(&sendmsg) , "hello world!") ;
	NE_USERMSG_LEN(&sendmsg) = 13 + NE_USERMSG_HDRLEN ;
	NE_USERMSG_PARAM(&sendmsg) = 0  ;
	cm_num = 0 ;
	pmanger = ne_listensrv_get_cmmamager(listen_haneld) ;
	for(client = pmanger->lock_first (pmanger,&cm_iterator) ; client; 
				client = pmanger->lock_next (pmanger,&cm_iterator) ) {
		ne_sleep(10) ;		//simulate processor running
		ne_sessionmsg_sendex(client,&sendmsg, ESF_NORMAL) ;
//		if(rand()%9 == 0 ) {
//			ne_session_close(client,0) ;
//		}
		cm_num++ ;
	}
	ne_sleep(1000) ;
	if(cm_num)neprintf("\t\tcurrent connect num=%d\n", cm_num) ;
	return 0;
}