Esempio n. 1
0
int packetmgr_start( qqclient* qq )
{
	int ret;
	qqpacketmgr *mgr = &qq->packetmgr;
	memset( mgr, 0, sizeof(qqpacketmgr) );
	loop_create( &mgr->recv_loop, MAX_LOOP_PACKET, NULL );
	loop_create( &mgr->ready_loop, 128, delete_func );
	loop_create( &mgr->temp_loop, 64, delete_func );
	loop_create( &mgr->sent_loop, 32, delete_func );
	ret = pthread_create( &mgr->thread_recv, NULL, packetmgr_recv, (void*)qq );
	return 0;
}
Esempio n. 2
0
EXPORT void webqq_init()
{
	int ret;
	webqq_running = 1;
	config_init();
//	qqsocket_init();
	loop_create( &user_loop, MAX_USERS, delete_func );
	ret = pthread_create( &thread_guarder, NULL, webqq_guarder, (void*)0 );
}
    LIBCOUCHBASE_API lcb_error_t
cb_create_ruby_mt_io_opts(int version, lcb_io_opt_t *io, void *arg)
{
    struct lcb_io_opt_st *ret;
    rb_mt_loop *loop;
    (void)arg;
    if (version != 0) {
        return LCB_PLUGIN_VERSION_MISMATCH;
    }
    ret = calloc(1, sizeof(*ret));
    if (ret == NULL) {
        free(ret);
        return LCB_CLIENT_ENOMEM;
    }

    ret->version = 0;
    ret->dlhandle = NULL;
    ret->destructor = lcb_destroy_io_opts;
    /* consider that struct isn't allocated by the library,
     * `need_cleanup' flag might be set in lcb_create() */
    ret->v.v0.need_cleanup = 0;
    ret->v.v0.recv = cb_io_recv;
    ret->v.v0.send = cb_io_send;
    ret->v.v0.recvv = cb_io_recvv;
    ret->v.v0.sendv = cb_io_sendv;
    ret->v.v0.socket = cb_io_socket;
    ret->v.v0.close = cb_io_close;
    ret->v.v0.connect = cb_io_connect;
    ret->v.v0.delete_event = lcb_io_delete_event;
    ret->v.v0.destroy_event = lcb_io_destroy_event;
    ret->v.v0.create_event = lcb_io_create_event;
    ret->v.v0.update_event = lcb_io_update_event;

    ret->v.v0.delete_timer = lcb_io_delete_timer;
    ret->v.v0.destroy_timer = lcb_io_destroy_timer;
    ret->v.v0.create_timer = lcb_io_create_timer;
    ret->v.v0.update_timer = lcb_io_update_timer;

    ret->v.v0.run_event_loop = lcb_io_run_event_loop;
    ret->v.v0.stop_event_loop = lcb_io_stop_event_loop;

    loop = loop_create();
    if (loop == NULL) {
        free(ret);
        return LCB_CLIENT_ENOMEM;
    }
    ret->v.v0.cookie = loop;
    *io = ret;
    return LCB_SUCCESS;
}
Esempio n. 4
0
int main() {
    int i = 0;
    loop_t* loop = loop_create();
    channel_ref_t* acceptor = 0;
    channel_ref_t* connector = 0;
    acceptor = loop_create_channel(loop, 8, 1024);
    channel_ref_accept(acceptor, 0, 8000, 50);
    channel_ref_set_cb(acceptor, acceptor_cb);
    broadcast = broadcast_create();
    for (; i < MAX_CONNECTOR; i++) {
        connector = loop_create_channel(loop, 8, 1024);
        channel_ref_set_cb(connector, connector_cb);
        channel_ref_connect(connector, "127.0.0.1", 8000, 0);
    }

    loop_run(loop);
    broadcast_destroy(broadcast);
    loop_destroy(loop);

    return 0;
}