示例#1
0
文件: tube.c 项目: 2asoft/freebsd
int tube_setup_bg_listen(struct tube* tube, struct comm_base* base,
        tube_callback_t* cb, void* arg)
{
	tube->listen_cb = cb;
	tube->listen_arg = arg;
	if(!comm_base_internal(base))
		return 1; /* ignore when no comm base - testing */
	return winsock_register_wsaevent(comm_base_internal(base), 
		&tube->ev_listen, tube->event, &tube_handle_signal, tube);
}
示例#2
0
void wsvc_setup_worker(struct worker* worker)
{
	/* if not started with -w service, do nothing */
	if(!service_stop_event)
		return;
	if(!winsock_register_wsaevent(comm_base_internal(worker->base),
		&service_stop_ev, service_stop_event,
		&worker_win_stop_cb, worker)) {
		fatal_exit("could not register wsaevent");
		return;
	}
	if(!service_cron) {
		service_cron = comm_timer_create(worker->base, 
			wsvc_cron_cb, worker);
		if(!service_cron)
			fatal_exit("could not create cron timer");
		set_cron_timer();
	}
}