summaryrefslogtreecommitdiff
path: root/ev.c
diff options
context:
space:
mode:
authorMarc Alexander Lehmann <libev@schmorp.de>2016-02-18 04:48:05 +0000
committerMarc Alexander Lehmann <libev@schmorp.de>2016-02-18 04:48:05 +0000
commit523ae0994ecd05bfa549edd73c623df121fb22ac (patch)
tree0bc506da6f2b463256b352abebf46db25d9cc7fc /ev.c
parentab2cadf8b56edcecbcdd48fd21c5c93c6c4295c2 (diff)
downloadlibev-523ae0994ecd05bfa549edd73c623df121fb22ac.tar.gz
libev-523ae0994ecd05bfa549edd73c623df121fb22ac.zip
*** empty log message ***
Diffstat (limited to 'ev.c')
-rw-r--r--ev.c154
1 files changed, 100 insertions, 54 deletions
diff --git a/ev.c b/ev.c
index cf55835..c85792c 100644
--- a/ev.c
+++ b/ev.c
@@ -1529,7 +1529,7 @@ ecb_binary32_to_binary16 (uint32_t x)
#if EV_FEATURE_CODE
# define inline_speed ecb_inline
#else
-# define inline_speed static noinline
+# define inline_speed noinline static
#endif
#define NUMPRI (EV_MAXPRI - EV_MINPRI + 1)
@@ -1586,7 +1586,8 @@ static EV_ATOMIC_T have_monotonic; /* did clock_gettime (CLOCK_MONOTONIC) work?
#include <float.h>
/* a floor() replacement function, should be independent of ev_tstamp type */
-static ev_tstamp noinline
+noinline
+static ev_tstamp
ev_floor (ev_tstamp v)
{
/* the choice of shift factor is not terribly important */
@@ -1628,7 +1629,8 @@ ev_floor (ev_tstamp v)
# include <sys/utsname.h>
#endif
-static unsigned int noinline ecb_cold
+noinline ecb_cold
+static unsigned int
ev_linux_version (void)
{
#ifdef __linux
@@ -1667,7 +1669,8 @@ ev_linux_version (void)
/*****************************************************************************/
#if EV_AVOID_STDIO
-static void noinline ecb_cold
+noinline ecb_cold
+static void
ev_printerr (const char *msg)
{
write (STDERR_FILENO, msg, strlen (msg));
@@ -1676,13 +1679,15 @@ ev_printerr (const char *msg)
static void (*syserr_cb)(const char *msg) EV_THROW;
-void ecb_cold
+ecb_cold
+void
ev_set_syserr_cb (void (*cb)(const char *msg) EV_THROW) EV_THROW
{
syserr_cb = cb;
}
-static void noinline ecb_cold
+noinline ecb_cold
+static void
ev_syserr (const char *msg)
{
if (!msg)
@@ -1723,7 +1728,8 @@ ev_realloc_emul (void *ptr, long size) EV_THROW
static void *(*alloc)(void *ptr, long size) EV_THROW = ev_realloc_emul;
-void ecb_cold
+ecb_cold
+void
ev_set_allocator (void *(*cb)(void *ptr, long size) EV_THROW) EV_THROW
{
alloc = cb;
@@ -1942,7 +1948,8 @@ array_nextsize (int elem, int cur, int cnt)
return ncur;
}
-static void * noinline ecb_cold
+noinline ecb_cold
+static void *
array_realloc (int elem, void *base, int *cur, int cnt)
{
*cur = array_nextsize (elem, *cur, cnt);
@@ -1955,7 +1962,7 @@ array_realloc (int elem, void *base, int *cur, int cnt)
#define array_needsize(type,base,cur,cnt,init) \
if (expect_false ((cnt) > (cur))) \
{ \
- int ecb_unused ocur_ = (cur); \
+ ecb_unused int ocur_ = (cur); \
(base) = (type *)array_realloc \
(sizeof (type), (base), &(cur), (cnt)); \
init ((base) + (ocur_), (cur) - ocur_); \
@@ -1977,12 +1984,14 @@ array_realloc (int elem, void *base, int *cur, int cnt)
/*****************************************************************************/
/* dummy callback for pending events */
-static void noinline
+noinline
+static void
pendingcb (EV_P_ ev_prepare *w, int revents)
{
}
-void noinline
+noinline
+void
ev_feed_event (EV_P_ void *w, int revents) EV_THROW
{
W w_ = (W)w;
@@ -2122,7 +2131,8 @@ fd_reify (EV_P)
}
/* something about the given fd changed */
-inline_size void
+inline_size
+void
fd_change (EV_P_ int fd, int flags)
{
unsigned char reify = anfds [fd].reify;
@@ -2137,7 +2147,7 @@ fd_change (EV_P_ int fd, int flags)
}
/* the given fd is invalid/unusable, so make sure it doesn't hurt us anymore */
-inline_speed void ecb_cold
+inline_speed ecb_cold void
fd_kill (EV_P_ int fd)
{
ev_io *w;
@@ -2150,7 +2160,7 @@ fd_kill (EV_P_ int fd)
}
/* check whether the given fd is actually valid, for error recovery */
-inline_size int ecb_cold
+inline_size ecb_cold int
fd_valid (int fd)
{
#ifdef _WIN32
@@ -2161,7 +2171,8 @@ fd_valid (int fd)
}
/* called on EBADF to verify fds */
-static void noinline ecb_cold
+noinline ecb_cold
+static void
fd_ebadf (EV_P)
{
int fd;
@@ -2173,7 +2184,8 @@ fd_ebadf (EV_P)
}
/* called on ENOMEM in select/poll to kill some fds and retry */
-static void noinline ecb_cold
+noinline ecb_cold
+static void
fd_enomem (EV_P)
{
int fd;
@@ -2187,7 +2199,8 @@ fd_enomem (EV_P)
}
/* usually called after fork if backend needs to re-arm all fds from scratch */
-static void noinline
+noinline
+static void
fd_rearm_all (EV_P)
{
int fd;
@@ -2378,7 +2391,8 @@ static ANSIG signals [EV_NSIG - 1];
#if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE
-static void noinline ecb_cold
+noinline ecb_cold
+static void
evpipe_init (EV_P)
{
if (!ev_is_active (&pipe_w))
@@ -2566,7 +2580,8 @@ ev_sighandler (int signum)
ev_feed_signal (signum);
}
-void noinline
+noinline
+void
ev_feed_signal_event (EV_P_ int signum) EV_THROW
{
WL w;
@@ -2693,20 +2708,20 @@ childcb (EV_P_ ev_signal *sw, int revents)
# include "ev_select.c"
#endif
-int ecb_cold
+ecb_cold int
ev_version_major (void) EV_THROW
{
return EV_VERSION_MAJOR;
}
-int ecb_cold
+ecb_cold int
ev_version_minor (void) EV_THROW
{
return EV_VERSION_MINOR;
}
/* return true if we are running with elevated privileges and should ignore env variables */
-int inline_size ecb_cold
+inline_size ecb_cold int
enable_secure (void)
{
#ifdef _WIN32
@@ -2717,7 +2732,8 @@ enable_secure (void)
#endif
}
-unsigned int ecb_cold
+ecb_cold
+unsigned int
ev_supported_backends (void) EV_THROW
{
unsigned int flags = 0;
@@ -2731,7 +2747,8 @@ ev_supported_backends (void) EV_THROW
return flags;
}
-unsigned int ecb_cold
+ecb_cold
+unsigned int
ev_recommended_backends (void) EV_THROW
{
unsigned int flags = ev_supported_backends ();
@@ -2753,7 +2770,8 @@ ev_recommended_backends (void) EV_THROW
return flags;
}
-unsigned int ecb_cold
+ecb_cold
+unsigned int
ev_embeddable_backends (void) EV_THROW
{
int flags = EVBACKEND_EPOLL | EVBACKEND_KQUEUE | EVBACKEND_PORT;
@@ -2823,7 +2841,8 @@ ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_THROW, void (*acquire)(EV
#endif
/* initialise a loop structure, must be zero-initialised */
-static void noinline ecb_cold
+noinline ecb_cold
+static void
loop_init (EV_P_ unsigned int flags) EV_THROW
{
if (!backend)
@@ -2920,7 +2939,8 @@ loop_init (EV_P_ unsigned int flags) EV_THROW
}
/* free up a loop structure */
-void ecb_cold
+ecb_cold
+void
ev_loop_destroy (EV_P)
{
int i;
@@ -3072,7 +3092,8 @@ loop_fork (EV_P)
#if EV_MULTIPLICITY
-struct ev_loop * ecb_cold
+ecb_cold
+struct ev_loop *
ev_loop_new (unsigned int flags) EV_THROW
{
EV_P = (struct ev_loop *)ev_malloc (sizeof (struct ev_loop));
@@ -3090,7 +3111,8 @@ ev_loop_new (unsigned int flags) EV_THROW
#endif /* multiplicity */
#if EV_VERIFY
-static void noinline ecb_cold
+noinline ecb_cold
+static void
verify_watcher (EV_P_ W w)
{
assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI));
@@ -3099,7 +3121,8 @@ verify_watcher (EV_P_ W w)
assert (("libev: pending watcher not on pending queue", pendings [ABSPRI (w)][w->pending - 1].w == w));
}
-static void noinline ecb_cold
+noinline ecb_cold
+static void
verify_heap (EV_P_ ANHE *heap, int N)
{
int i;
@@ -3114,7 +3137,8 @@ verify_heap (EV_P_ ANHE *heap, int N)
}
}
-static void noinline ecb_cold
+noinline ecb_cold
+static void
array_verify (EV_P_ W *ws, int cnt)
{
while (cnt--)
@@ -3213,7 +3237,8 @@ ev_verify (EV_P) EV_THROW
#endif
#if EV_MULTIPLICITY
-struct ev_loop * ecb_cold
+ecb_cold
+struct ev_loop *
#else
int
#endif
@@ -3271,7 +3296,8 @@ ev_pending_count (EV_P) EV_THROW
return count;
}
-void noinline
+noinline
+void
ev_invoke_pending (EV_P)
{
pendingpri = NUMPRI;
@@ -3356,7 +3382,8 @@ timers_reify (EV_P)
#if EV_PERIODIC_ENABLE
-static void noinline
+noinline
+static void
periodic_recalc (EV_P_ ev_periodic *w)
{
ev_tstamp interval = w->interval > MIN_INTERVAL ? w->interval : MIN_INTERVAL;
@@ -3424,7 +3451,8 @@ periodics_reify (EV_P)
/* simply recalculate all periodics */
/* TODO: maybe ensure that at least one event happens when jumping forward? */
-static void noinline ecb_cold
+noinline ecb_cold
+static void
periodics_reschedule (EV_P)
{
int i;
@@ -3447,7 +3475,8 @@ periodics_reschedule (EV_P)
#endif
/* adjust all timers by a given offset */
-static void noinline ecb_cold
+noinline ecb_cold
+static void
timers_reschedule (EV_P_ ev_tstamp adjust)
{
int i;
@@ -3825,7 +3854,8 @@ ev_stop (EV_P_ W w)
/*****************************************************************************/
-void noinline
+noinline
+void
ev_io_start (EV_P_ ev_io *w) EV_THROW
{
int fd = w->fd;
@@ -3851,7 +3881,8 @@ ev_io_start (EV_P_ ev_io *w) EV_THROW
EV_FREQUENT_CHECK;
}
-void noinline
+noinline
+void
ev_io_stop (EV_P_ ev_io *w) EV_THROW
{
clear_pending (EV_A_ (W)w);
@@ -3870,7 +3901,8 @@ ev_io_stop (EV_P_ ev_io *w) EV_THROW
EV_FREQUENT_CHECK;
}
-void noinline
+noinline
+void
ev_timer_start (EV_P_ ev_timer *w) EV_THROW
{
if (expect_false (ev_is_active (w)))
@@ -3894,7 +3926,8 @@ ev_timer_start (EV_P_ ev_timer *w) EV_THROW
/*assert (("libev: internal timer heap corruption", timers [ev_active (w)] == (WT)w));*/
}
-void noinline
+noinline
+void
ev_timer_stop (EV_P_ ev_timer *w) EV_THROW
{
clear_pending (EV_A_ (W)w);
@@ -3924,7 +3957,8 @@ ev_timer_stop (EV_P_ ev_timer *w) EV_THROW
EV_FREQUENT_CHECK;
}
-void noinline
+noinline
+void
ev_timer_again (EV_P_ ev_timer *w) EV_THROW
{
EV_FREQUENT_CHECK;
@@ -3958,7 +3992,8 @@ ev_timer_remaining (EV_P_ ev_timer *w) EV_THROW
}
#if EV_PERIODIC_ENABLE
-void noinline
+noinline
+void
ev_periodic_start (EV_P_ ev_periodic *w) EV_THROW
{
if (expect_false (ev_is_active (w)))
@@ -3988,7 +4023,8 @@ ev_periodic_start (EV_P_ ev_periodic *w) EV_THROW
/*assert (("libev: internal periodic heap corruption", ANHE_w (periodics [ev_active (w)]) == (WT)w));*/
}
-void noinline
+noinline
+void
ev_periodic_stop (EV_P_ ev_periodic *w) EV_THROW
{
clear_pending (EV_A_ (W)w);
@@ -4016,7 +4052,8 @@ ev_periodic_stop (EV_P_ ev_periodic *w) EV_THROW
EV_FREQUENT_CHECK;
}
-void noinline
+noinline
+void
ev_periodic_again (EV_P_ ev_periodic *w) EV_THROW
{
/* TODO: use adjustheap and recalculation */
@@ -4031,7 +4068,8 @@ ev_periodic_again (EV_P_ ev_periodic *w) EV_THROW
#if EV_SIGNAL_ENABLE
-void noinline
+noinline
+void
ev_signal_start (EV_P_ ev_signal *w) EV_THROW
{
if (expect_false (ev_is_active (w)))
@@ -4113,7 +4151,8 @@ ev_signal_start (EV_P_ ev_signal *w) EV_THROW
EV_FREQUENT_CHECK;
}
-void noinline
+noinline
+void
ev_signal_stop (EV_P_ ev_signal *w) EV_THROW
{
clear_pending (EV_A_ (W)w);
@@ -4199,14 +4238,15 @@ ev_child_stop (EV_P_ ev_child *w) EV_THROW
#define NFS_STAT_INTERVAL 30.1074891 /* for filesystems potentially failing inotify */
#define MIN_STAT_INTERVAL 0.1074891
-static void noinline stat_timer_cb (EV_P_ ev_timer *w_, int revents);
+noinline static void stat_timer_cb (EV_P_ ev_timer *w_, int revents);
#if EV_USE_INOTIFY
/* the * 2 is to allow for alignment padding, which for some reason is >> 8 */
# define EV_INOTIFY_BUFSIZE (sizeof (struct inotify_event) * 2 + NAME_MAX)
-static void noinline
+noinline
+static void
infy_add (EV_P_ ev_stat *w)
{
w->wd = inotify_add_watch (fs_fd, w->path,
@@ -4280,7 +4320,8 @@ infy_add (EV_P_ ev_stat *w)
if (ev_is_active (&w->timer)) ev_unref (EV_A);
}
-static void noinline
+noinline
+static void
infy_del (EV_P_ ev_stat *w)
{
int slot;
@@ -4297,7 +4338,8 @@ infy_del (EV_P_ ev_stat *w)
inotify_rm_watch (fs_fd, wd);
}
-static void noinline
+noinline
+static void
infy_wd (EV_P_ int slot, int wd, struct inotify_event *ev)
{
if (slot < 0)
@@ -4343,7 +4385,8 @@ infy_cb (EV_P_ ev_io *w, int revents)
}
}
-inline_size void ecb_cold
+inline_size ecb_cold
+void
ev_check_2625 (EV_P)
{
/* kernels < 2.6.25 are borked
@@ -4451,7 +4494,8 @@ ev_stat_stat (EV_P_ ev_stat *w) EV_THROW
w->attr.st_nlink = 1;
}
-static void noinline
+noinline
+static void
stat_timer_cb (EV_P_ ev_timer *w_, int revents)
{
ev_stat *w = (ev_stat *)(((char *)w_) - offsetof (ev_stat, timer));
@@ -4671,7 +4715,8 @@ ev_check_stop (EV_P_ ev_check *w) EV_THROW
#endif
#if EV_EMBED_ENABLE
-void noinline
+noinline
+void
ev_embed_sweep (EV_P_ ev_embed *w) EV_THROW
{
ev_run (w->other, EVRUN_NOWAIT);
@@ -4978,7 +5023,8 @@ ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, vo
/*****************************************************************************/
#if EV_WALK_ENABLE
-void ecb_cold
+ecb_cold
+void
ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w)) EV_THROW
{
int i, j;