From 20a7f40dcd52aa975af410a66b8e72e337e3cc71 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 9 Mar 2010 08:55:03 +0000 Subject: ev_avoid_stdio --- ev.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'ev.c') diff --git a/ev.c b/ev.c index 280de7e..850314d 100644 --- a/ev.c +++ b/ev.c @@ -186,6 +186,7 @@ extern "C" { # ifndef EV_SELECT_IS_WINSOCKET # define EV_SELECT_IS_WINSOCKET 1 # endif +# undef EV_AVOID_STDIO #endif /* this block tries to deduce configuration from header-defined symbols and defaults */ @@ -526,6 +527,14 @@ static EV_ATOMIC_T have_monotonic; /* did clock_gettime (CLOCK_MONOTONIC) work? /*****************************************************************************/ +#if EV_AVOID_STDIO +static void noinline +ev_printerr (const char *msg) +{ + write (STDERR_FILENO, msg, strlen (msg)); +} +#endif + static void (*syserr_cb)(const char *msg); void @@ -545,11 +554,12 @@ ev_syserr (const char *msg) else { #if EV_AVOID_STDIO - write (STDERR_FILENO, msg, strlen (msg)); - write (STDERR_FILENO, ": ", 2); - msg = strerror (errno); - write (STDERR_FILENO, msg, strlen (msg)); - write (STDERR_FILENO, "\n", 1); + const char *err = strerror (errno); + + ev_printerr (msg); + ev_printerr (": "); + ev_printerr (err); + ev_printerr ("\n"); #else perror (msg); #endif @@ -588,8 +598,7 @@ ev_realloc (void *ptr, long size) if (!ptr && size) { #if EV_AVOID_STDIO - write (STDERR_FILENO, "libev: memory allocation failed, aborting.", - sizeof ("libev: memory allocation failed, aborting.") - 1); + ev_printerr ("libev: memory allocation failed, aborting.\n"); #else fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size); #endif -- cgit v1.2.3