Lines Matching full:ev
77 verto_mod_ev *ev; member
486 verto_ev *ev = NULL; in make_ev() local
491 ev = vresize(NULL, sizeof(verto_ev)); in make_ev()
492 if (ev) { in make_ev()
493 memset(ev, 0, sizeof(verto_ev)); in make_ev()
494 ev->ctx = ctx; in make_ev()
495 ev->type = type; in make_ev()
496 ev->callback = callback; in make_ev()
497 ev->flags = flags; in make_ev()
500 return ev; in make_ev()
504 push_ev(verto_ctx *ctx, verto_ev *ev) in push_ev() argument
508 if (!ctx || !ev) in push_ev()
512 ctx->events = ev; in push_ev()
529 signal_ignore(verto_ctx *ctx, verto_ev *ev) in signal_ignore() argument
532 (void) ev; in signal_ignore()
667 /* Delete all events, but keep around the forkable ev structs */ in verto_reinitialize()
672 ctx->module->funcs->ctx_del(ctx->ctx, tmp, tmp->ev); in verto_reinitialize()
684 tmp->ev = ctx->module->funcs->ctx_add(ctx->ctx, tmp, &tmp->actual); in verto_reinitialize()
685 if (!tmp->ev) in verto_reinitialize()
692 #define doadd(ev, set, type) \ argument
693 ev = make_ev(ctx, callback, type, flags); \
694 if (ev) { \
696 ev->actual = make_actual(ev->flags); \
697 ev->ev = ctx->module->funcs->ctx_add(ctx->ctx, ev, &ev->actual); \
698 if (!ev->ev) { \
699 vfree(ev); \
702 push_ev(ctx, ev); \
709 verto_ev *ev; in verto_add_io() local
714 doadd(ev, ev->option.io.fd = fd, VERTO_EV_TYPE_IO); in verto_add_io()
715 return ev; in verto_add_io()
722 verto_ev *ev; in verto_add_timeout() local
723 doadd(ev, ev->option.interval = interval, VERTO_EV_TYPE_TIMEOUT); in verto_add_timeout()
724 return ev; in verto_add_timeout()
731 verto_ev *ev; in verto_add_idle() local
732 doadd(ev,, VERTO_EV_TYPE_IDLE); in verto_add_idle()
733 return ev; in verto_add_idle()
740 verto_ev *ev; in verto_add_signal() local
753 doadd(ev, ev->option.signal = signal, VERTO_EV_TYPE_SIGNAL); in verto_add_signal()
754 return ev; in verto_add_signal()
761 verto_ev *ev; in verto_add_child() local
771 doadd(ev, ev->option.child.proc = proc, VERTO_EV_TYPE_CHILD); in verto_add_child()
772 return ev; in verto_add_child()
776 verto_set_private(verto_ev *ev, void *priv, verto_callback *free) in verto_set_private() argument
778 if (!ev) in verto_set_private()
780 if (ev->onfree && free) in verto_set_private()
781 ev->onfree(ev->ctx, ev); in verto_set_private()
782 ev->priv = priv; in verto_set_private()
783 ev->onfree = free; in verto_set_private()
787 verto_get_private(const verto_ev *ev) in verto_get_private() argument
789 return ev->priv; in verto_get_private()
793 verto_get_type(const verto_ev *ev) in verto_get_type() argument
795 return ev->type; in verto_get_type()
799 verto_get_flags(const verto_ev *ev) in verto_get_flags() argument
801 return ev->flags; in verto_get_flags()
805 verto_set_flags(verto_ev *ev, verto_ev_flag flags) in verto_set_flags() argument
807 if (!ev) in verto_set_flags()
811 if (MUTABLE(ev->flags) == MUTABLE(flags)) in verto_set_flags()
814 ev->flags &= ~_VERTO_EV_FLAG_MUTABLE_MASK; in verto_set_flags()
815 ev->flags |= MUTABLE(flags); in verto_set_flags()
818 if (!ev->ctx->module->funcs->ctx_set_flags) { in verto_set_flags()
819 ev->ctx->module->funcs->ctx_del(ev->ctx->ctx, ev, ev->ev); in verto_set_flags()
820 ev->actual = make_actual(ev->flags); in verto_set_flags()
821 ev->ev = ev->ctx->module->funcs->ctx_add(ev->ctx->ctx, ev, &ev->actual); in verto_set_flags()
822 assert(ev->ev); /* Here is the main reason why modules should */ in verto_set_flags()
826 ev->actual &= ~_VERTO_EV_FLAG_MUTABLE_MASK; in verto_set_flags()
827 ev->actual |= MUTABLE(flags); in verto_set_flags()
828 ev->ctx->module->funcs->ctx_set_flags(ev->ctx->ctx, ev, ev->ev); in verto_set_flags()
832 verto_get_fd(const verto_ev *ev) in verto_get_fd() argument
834 if (ev && (ev->type == VERTO_EV_TYPE_IO)) in verto_get_fd()
835 return ev->option.io.fd; in verto_get_fd()
840 verto_get_fd_state(const verto_ev *ev) in verto_get_fd_state() argument
842 return ev->option.io.state; in verto_get_fd_state()
846 verto_get_interval(const verto_ev *ev) in verto_get_interval() argument
848 if (ev && (ev->type == VERTO_EV_TYPE_TIMEOUT)) in verto_get_interval()
849 return ev->option.interval; in verto_get_interval()
854 verto_get_signal(const verto_ev *ev) in verto_get_signal() argument
856 if (ev && (ev->type == VERTO_EV_TYPE_SIGNAL)) in verto_get_signal()
857 return ev->option.signal; in verto_get_signal()
862 verto_get_proc(const verto_ev *ev) { in verto_get_proc() argument
863 if (ev && ev->type == VERTO_EV_TYPE_CHILD) in verto_get_proc()
864 return ev->option.child.proc; in verto_get_proc()
869 verto_get_proc_status(const verto_ev *ev) in verto_get_proc_status() argument
871 return ev->option.child.status; in verto_get_proc_status()
875 verto_get_ctx(const verto_ev *ev) in verto_get_ctx() argument
877 return ev->ctx; in verto_get_ctx()
881 verto_del(verto_ev *ev) in verto_del() argument
883 if (!ev) in verto_del()
890 if (ev->depth > 0) { in verto_del()
891 ev->deleted = 1; in verto_del()
895 if (ev->onfree) in verto_del()
896 ev->onfree(ev->ctx, ev); in verto_del()
897 ev->ctx->module->funcs->ctx_del(ev->ctx->ctx, ev, ev->ev); in verto_del()
898 remove_ev(&(ev->ctx->events), ev); in verto_del()
900 if ((ev->type == VERTO_EV_TYPE_IO) && in verto_del()
901 (ev->flags & VERTO_EV_FLAG_IO_CLOSE_FD) && in verto_del()
902 !(ev->actual & VERTO_EV_FLAG_IO_CLOSE_FD)) in verto_del()
903 close(ev->option.io.fd); in verto_del()
905 vfree(ev); in verto_del()
1001 verto_fire(verto_ev *ev) in verto_fire() argument
1005 ev->depth++; in verto_fire()
1006 ev->callback(ev->ctx, ev); in verto_fire()
1007 ev->depth--; in verto_fire()
1009 if (ev->depth == 0) { in verto_fire()
1010 if (!(ev->flags & VERTO_EV_FLAG_PERSIST) || ev->deleted) in verto_fire()
1011 verto_del(ev); in verto_fire()
1013 if (!(ev->actual & VERTO_EV_FLAG_PERSIST)) { in verto_fire()
1014 ev->actual = make_actual(ev->flags); in verto_fire()
1015 priv = ev->ctx->module->funcs->ctx_add(ev->ctx->ctx, ev, &ev->actual); in verto_fire()
1017 ev->ctx->module->funcs->ctx_del(ev->ctx->ctx, ev, ev->ev); in verto_fire()
1018 ev->ev = priv; in verto_fire()
1021 if (ev->type == VERTO_EV_TYPE_IO) in verto_fire()
1022 ev->option.io.state = VERTO_EV_FLAG_NONE; in verto_fire()
1023 if (ev->type == VERTO_EV_TYPE_CHILD) in verto_fire()
1024 ev->option.child.status = 0; in verto_fire()
1030 verto_set_proc_status(verto_ev *ev, verto_proc_status status) in verto_set_proc_status() argument
1032 if (ev && ev->type == VERTO_EV_TYPE_CHILD) in verto_set_proc_status()
1033 ev->option.child.status = status; in verto_set_proc_status()
1037 verto_set_fd_state(verto_ev *ev, verto_ev_flag state) in verto_set_fd_state() argument
1048 if (ev && ev->type == VERTO_EV_TYPE_IO) in verto_set_fd_state()
1049 ev->option.io.state = state; in verto_set_fd_state()