Lines Matching refs:ev
323 event_set(struct event* ev, int fd, short bits,
326 ev->node.key = ev;
327 ev->ev_fd = fd;
328 ev->ev_flags = bits;
329 ev->ev_callback = cb;
330 ev->ev_arg = arg;
331 ev->added = 0;
336 event_base_set(struct event_base* base, struct event* ev)
338 ev->ev_base = base;
339 ev->added = 0;
345 event_add(struct event* ev, struct timeval* tv)
347 if(ev->added)
348 event_del(ev);
349 if(ev->ev_fd != -1 && ev->ev_fd >= ev->ev_base->capfd)
351 if( (ev->ev_flags&(EV_READ|EV_WRITE)) && ev->ev_fd != -1) {
352 ev->ev_base->fds[ev->ev_fd] = ev;
353 if((ev->ev_flags&EV_READ)) {
354 FD_SET(FD_SET_T ev->ev_fd, &ev->ev_base->reads);
356 if((ev->ev_flags&EV_WRITE)) {
357 FD_SET(FD_SET_T ev->ev_fd, &ev->ev_base->writes);
359 FD_SET(FD_SET_T ev->ev_fd, &ev->ev_base->content);
360 FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->ready);
361 if(ev->ev_fd > ev->ev_base->maxfd)
362 ev->ev_base->maxfd = ev->ev_fd;
364 if(tv && (ev->ev_flags&EV_TIMEOUT)) {
366 struct timeval* now = ev->ev_base->time_tv;
367 ev->ev_timeout.tv_sec = tv->tv_sec + now->tv_sec;
368 ev->ev_timeout.tv_usec = tv->tv_usec + now->tv_usec;
369 while(ev->ev_timeout.tv_usec >= 1000000) {
370 ev->ev_timeout.tv_usec -= 1000000;
371 ev->ev_timeout.tv_sec++;
374 (void)rbtree_insert(ev->ev_base->times, &ev->node);
376 ev->added = 1;
382 event_del(struct event* ev)
384 if(ev->ev_fd != -1 && ev->ev_fd >= ev->ev_base->capfd)
386 if((ev->ev_flags&EV_TIMEOUT))
387 (void)rbtree_delete(ev->ev_base->times, &ev->node);
388 if((ev->ev_flags&(EV_READ|EV_WRITE)) && ev->ev_fd != -1) {
389 ev->ev_base->fds[ev->ev_fd] = NULL;
390 FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->reads);
391 FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->writes);
392 FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->ready);
393 FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->content);
395 ev->added = 0;
406 struct event* ev;
409 ev = signal_base->signals[sig];
410 if(!ev)
412 (*ev->ev_callback)(sig, EV_SIGNAL, ev->ev_arg);
417 signal_add(struct event* ev, struct timeval* ATTR_UNUSED(tv))
420 if(ev->ev_fd == -1 || ev->ev_fd >= MAX_SIG)
422 signal_base = ev->ev_base;
423 ev->ev_base->signals[ev->ev_fd] = ev;
424 ev->added = 1;
428 return sigaction(ev->ev_fd, &action, NULL);
433 signal_del(struct event* ev)
435 if(ev->ev_fd == -1 || ev->ev_fd >= MAX_SIG)
437 ev->ev_base->signals[ev->ev_fd] = NULL;
438 ev->added = 0;