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

Comparing libev/ev.c (file contents):
Revision 1.220 by root, Sun Apr 6 09:53:17 2008 UTC vs.
Revision 1.226 by root, Fri Apr 18 17:16:44 2008 UTC

268# include <winsock.h> 268# include <winsock.h>
269#endif 269#endif
270 270
271#if EV_USE_EVENTFD 271#if EV_USE_EVENTFD
272/* our minimum requirement is glibc 2.7 which has the stub, but not the header */ 272/* our minimum requirement is glibc 2.7 which has the stub, but not the header */
273# include <stdint.h>
274# ifdef __cplusplus
275extern "C" {
276# endif
273int eventfd (unsigned int initval, int flags); 277int eventfd (unsigned int initval, int flags);
278# ifdef __cplusplus
279}
280# endif
274#endif 281#endif
275 282
276/**/ 283/**/
277 284
278/* 285/*
293# define expect(expr,value) __builtin_expect ((expr),(value)) 300# define expect(expr,value) __builtin_expect ((expr),(value))
294# define noinline __attribute__ ((noinline)) 301# define noinline __attribute__ ((noinline))
295#else 302#else
296# define expect(expr,value) (expr) 303# define expect(expr,value) (expr)
297# define noinline 304# define noinline
298# if __STDC_VERSION__ < 199901L 305# if __STDC_VERSION__ < 199901L && __GNUC__ < 2
299# define inline 306# define inline
300# endif 307# endif
301#endif 308#endif
302 309
303#define expect_false(expr) expect ((expr) != 0, 0) 310#define expect_false(expr) expect ((expr) != 0, 0)
353 perror (msg); 360 perror (msg);
354 abort (); 361 abort ();
355 } 362 }
356} 363}
357 364
365static void *
366ev_realloc_emul (void *ptr, long size)
367{
368 /* some systems, notably openbsd and darwin, fail to properly
369 * implement realloc (x, 0) (as required by both ansi c-98 and
370 * the single unix specification, so work around them here.
371 */
372
373 if (size)
374 return realloc (ptr, size);
375
376 free (ptr);
377 return 0;
378}
379
358static void *(*alloc)(void *ptr, long size); 380static void *(*alloc)(void *ptr, long size) = ev_realloc_emul;
359 381
360void 382void
361ev_set_allocator (void *(*cb)(void *ptr, long size)) 383ev_set_allocator (void *(*cb)(void *ptr, long size))
362{ 384{
363 alloc = cb; 385 alloc = cb;
364} 386}
365 387
366inline_speed void * 388inline_speed void *
367ev_realloc (void *ptr, long size) 389ev_realloc (void *ptr, long size)
368{ 390{
369 ptr = alloc ? alloc (ptr, size) : realloc (ptr, size); 391 ptr = alloc (ptr, size);
370 392
371 if (!ptr && size) 393 if (!ptr && size)
372 { 394 {
373 fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size); 395 fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size);
374 abort (); 396 abort ();
1163 if (!(flags & EVFLAG_NOENV) 1185 if (!(flags & EVFLAG_NOENV)
1164 && !enable_secure () 1186 && !enable_secure ()
1165 && getenv ("LIBEV_FLAGS")) 1187 && getenv ("LIBEV_FLAGS"))
1166 flags = atoi (getenv ("LIBEV_FLAGS")); 1188 flags = atoi (getenv ("LIBEV_FLAGS"));
1167 1189
1168 if (!(flags & 0x0000ffffUL)) 1190 if (!(flags & 0x0000ffffU))
1169 flags |= ev_recommended_backends (); 1191 flags |= ev_recommended_backends ();
1170 1192
1171#if EV_USE_PORT 1193#if EV_USE_PORT
1172 if (!backend && (flags & EVBACKEND_PORT )) backend = port_init (EV_A_ flags); 1194 if (!backend && (flags & EVBACKEND_PORT )) backend = port_init (EV_A_ flags);
1173#endif 1195#endif
1261#endif 1283#endif
1262 1284
1263 backend = 0; 1285 backend = 0;
1264} 1286}
1265 1287
1288#if EV_USE_INOTIFY
1266void inline_size infy_fork (EV_P); 1289void inline_size infy_fork (EV_P);
1290#endif
1267 1291
1268void inline_size 1292void inline_size
1269loop_fork (EV_P) 1293loop_fork (EV_P)
1270{ 1294{
1271#if EV_USE_PORT 1295#if EV_USE_PORT

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines