mirror of /home/gitosis/repositories/libev.git
*** empty log message ***
parent
958de4fee2
commit
0da5bf856d
8
Changes
8
Changes
|
@ -1,5 +1,11 @@
|
|||
Revision history for libev, a high-performance and full-featured event loop.
|
||||
|
||||
- probe for CLOCK_REALTIME support at runtime as well and fall
|
||||
back to gettimeofday if there is an error, to support older
|
||||
operating systems with newer header files/libraries.
|
||||
- prefer gettimeofday over clock_gettime with USE_CLOCK_SYSCALL
|
||||
(default most everywhere), otherwise not.
|
||||
|
||||
3.52 Wed Jan 7 21:43:02 CET 2009
|
||||
- fix compilation of select backend in fd_set mode when NFDBITS is
|
||||
missing (to get it to compile on QNX, reported by Rodrigo Campos).
|
||||
|
@ -13,7 +19,7 @@ Revision history for libev, a high-performance and full-featured event loop.
|
|||
attacks harder (but not impossible - it's windows). Make sure
|
||||
it even works under vista, which thinks that getpeer/sockname
|
||||
should return fantasy port numbers.
|
||||
- include "libev" all assertion messages for potentially
|
||||
- include "libev" in all assertion messages for potentially
|
||||
clearer diagnostics.
|
||||
- event_get_version (libevent compatibility) returned
|
||||
a useless string instead of the expected version string
|
||||
|
|
45
ev.c
45
ev.c
|
@ -66,7 +66,7 @@ extern "C" {
|
|||
# define EV_USE_MONOTONIC 1
|
||||
# endif
|
||||
# ifndef EV_USE_REALTIME
|
||||
# define EV_USE_REALTIME 1
|
||||
# define EV_USE_REALTIME 0
|
||||
# endif
|
||||
# else
|
||||
# ifndef EV_USE_MONOTONIC
|
||||
|
@ -195,7 +195,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#ifndef EV_USE_REALTIME
|
||||
# define EV_USE_REALTIME 0
|
||||
# define EV_USE_REALTIME !EV_USE_CLOCK_SYSCALL
|
||||
#endif
|
||||
|
||||
#ifndef EV_USE_NANOSLEEP
|
||||
|
@ -399,9 +399,13 @@ typedef ev_watcher_time *WT;
|
|||
#define ev_active(w) ((W)(w))->active
|
||||
#define ev_at(w) ((WT)(w))->at
|
||||
|
||||
#if EV_USE_MONOTONIC
|
||||
#if EV_USE_REALTIME
|
||||
/* sig_atomic_t is used to avoid per-thread variables or locking but still */
|
||||
/* giving it a reasonably high chance of working on typical architetcures */
|
||||
static EV_ATOMIC_T have_realtime; /* did clock_gettime (CLOCK_REALTIME) work? */
|
||||
#endif
|
||||
|
||||
#if EV_USE_MONOTONIC
|
||||
static EV_ATOMIC_T have_monotonic; /* did clock_gettime (CLOCK_MONOTONIC) work? */
|
||||
#endif
|
||||
|
||||
|
@ -555,14 +559,17 @@ ev_tstamp
|
|||
ev_time (void)
|
||||
{
|
||||
#if EV_USE_REALTIME
|
||||
struct timespec ts;
|
||||
clock_gettime (CLOCK_REALTIME, &ts);
|
||||
return ts.tv_sec + ts.tv_nsec * 1e-9;
|
||||
#else
|
||||
if (expect_true (have_realtime))
|
||||
{
|
||||
struct timespec ts;
|
||||
clock_gettime (CLOCK_REALTIME, &ts);
|
||||
return ts.tv_sec + ts.tv_nsec * 1e-9;
|
||||
}
|
||||
#endif
|
||||
|
||||
struct timeval tv;
|
||||
gettimeofday (&tv, 0);
|
||||
return tv.tv_sec + tv.tv_usec * 1e-6;
|
||||
#endif
|
||||
}
|
||||
|
||||
ev_tstamp inline_size
|
||||
|
@ -1321,12 +1328,24 @@ loop_init (EV_P_ unsigned int flags)
|
|||
{
|
||||
if (!backend)
|
||||
{
|
||||
#if EV_USE_REALTIME
|
||||
if (!have_realtime)
|
||||
{
|
||||
struct timespec ts;
|
||||
|
||||
if (!clock_gettime (CLOCK_REALTIME, &ts))
|
||||
have_realtime = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if EV_USE_MONOTONIC
|
||||
{
|
||||
struct timespec ts;
|
||||
if (!clock_gettime (CLOCK_MONOTONIC, &ts))
|
||||
have_monotonic = 1;
|
||||
}
|
||||
if (!have_monotonic)
|
||||
{
|
||||
struct timespec ts;
|
||||
|
||||
if (!clock_gettime (CLOCK_MONOTONIC, &ts))
|
||||
have_monotonic = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
ev_rt_now = ev_time ();
|
||||
|
|
12
ev.pod
12
ev.pod
|
@ -3231,11 +3231,13 @@ function is hiding in (often F<-lrt>). See also C<EV_USE_CLOCK_SYSCALL>.
|
|||
=item EV_USE_REALTIME
|
||||
|
||||
If defined to be C<1>, libev will try to detect the availability of the
|
||||
real-time clock option at compile time (and assume its availability at
|
||||
runtime if successful). Otherwise no use of the real-time clock option will
|
||||
be attempted. This effectively replaces C<gettimeofday> by C<clock_get
|
||||
(CLOCK_REALTIME, ...)> and will not normally affect correctness. See the
|
||||
note about libraries in the description of C<EV_USE_MONOTONIC>, though.
|
||||
real-time clock option at compile time (and assume its availability
|
||||
at runtime if successful). Otherwise no use of the real-time clock
|
||||
option will be attempted. This effectively replaces C<gettimeofday>
|
||||
by C<clock_get (CLOCK_REALTIME, ...)> and will not normally affect
|
||||
correctness. See the note about libraries in the description of
|
||||
C<EV_USE_MONOTONIC>, though. Defaults to the opposite value of
|
||||
C<EV_USE_CLOCK_SYSCALL>.
|
||||
|
||||
=item EV_USE_CLOCK_SYSCALL
|
||||
|
||||
|
|
Loading…
Reference in New Issue