ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.h
(Generate patch)

Comparing libev/ev.h (file contents):
Revision 1.200 by root, Tue Dec 24 13:52:58 2019 UTC vs.
Revision 1.203 by root, Wed Jan 22 02:20:47 2020 UTC

1/* 1/*
2 * libev native API header 2 * libev native API header
3 * 3 *
4 * Copyright (c) 2007-2019 Marc Alexander Lehmann <libev@schmorp.de> 4 * Copyright (c) 2007-2020 Marc Alexander Lehmann <libev@schmorp.de>
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without modifica- 7 * Redistribution and use in source and binary forms, with or without modifica-
8 * tion, are permitted provided that the following conditions are met: 8 * tion, are permitted provided that the following conditions are met:
9 * 9 *
692 ((ev_watcher *)(void *)(ev))->pending = 0; \ 692 ((ev_watcher *)(void *)(ev))->pending = 0; \
693 ev_set_priority ((ev), 0); \ 693 ev_set_priority ((ev), 0); \
694 ev_set_cb ((ev), cb_); \ 694 ev_set_cb ((ev), cb_); \
695} while (0) 695} while (0)
696 696
697#define ev_io_modify(ev,events_) do { (ev)->events = (ev)->events & EV__IOFDSET | (events_); } while (0)
697#define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) 698#define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0)
698#define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0) 699#define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0)
699#define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_); (ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0) 700#define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_); (ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0)
700#define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) 701#define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0)
701#define ev_child_set(ev,pid_,trace_) do { (ev)->pid = (pid_); (ev)->flags = !!(trace_); } while (0) 702#define ev_child_set(ev,pid_,trace_) do { (ev)->pid = (pid_); (ev)->flags = !!(trace_); } while (0)
737#endif 738#endif
738 739
739#define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at) 740#define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at)
740 741
741#ifndef ev_set_cb 742#ifndef ev_set_cb
743/* memmove is used here to avoid strict aliasing violations, and hopefully is optimized out by any reasonable compiler */
742# define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev)))) 744# define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
743#endif 745#endif
744 746
745/* stopping (enabling, adding) a watcher does nothing if it is already running */ 747/* stopping (enabling, adding) a watcher does nothing if it is already running */
746/* stopping (disabling, deleting) a watcher does nothing unless it's already running */ 748/* stopping (disabling, deleting) a watcher does nothing unless it's already running */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines