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

Comparing libev/ev.c (file contents):
Revision 1.166 by root, Sat Dec 8 03:53:36 2007 UTC vs.
Revision 1.169 by root, Sat Dec 8 14:27:39 2007 UTC

222#define MAX_BLOCKTIME 59.743 /* never wait longer than this time (to detect time jumps) */ 222#define MAX_BLOCKTIME 59.743 /* never wait longer than this time (to detect time jumps) */
223/*#define CLEANUP_INTERVAL (MAX_BLOCKTIME * 5.) /* how often to try to free memory and re-check fds */ 223/*#define CLEANUP_INTERVAL (MAX_BLOCKTIME * 5.) /* how often to try to free memory and re-check fds */
224 224
225#if __GNUC__ >= 3 225#if __GNUC__ >= 3
226# define expect(expr,value) __builtin_expect ((expr),(value)) 226# define expect(expr,value) __builtin_expect ((expr),(value))
227# define inline_size static inline /* inline for codesize */
228# if EV_MINIMAL
229# define noinline __attribute__ ((noinline)) 227# define noinline __attribute__ ((noinline))
230# define inline_speed static noinline
231# else
232# define noinline
233# define inline_speed static inline
234# endif
235#else 228#else
236# define expect(expr,value) (expr) 229# define expect(expr,value) (expr)
237# define inline_speed static
238# define inline_size static
239# define noinline 230# define noinline
231# if __STDC_VERSION__ < 199901L
232# define inline
233# endif
240#endif 234#endif
241 235
242#define expect_false(expr) expect ((expr) != 0, 0) 236#define expect_false(expr) expect ((expr) != 0, 0)
243#define expect_true(expr) expect ((expr) != 0, 1) 237#define expect_true(expr) expect ((expr) != 0, 1)
238#define inline_size static inline
239
240#if EV_MINIMAL
241# define inline_speed static noinline
242#else
243# define inline_speed static inline
244#endif
244 245
245#define NUMPRI (EV_MAXPRI - EV_MINPRI + 1) 246#define NUMPRI (EV_MAXPRI - EV_MINPRI + 1)
246#define ABSPRI(w) (((W)w)->priority - EV_MINPRI) 247#define ABSPRI(w) (((W)w)->priority - EV_MINPRI)
247 248
248#define EMPTY /* required for microsofts broken pseudo-c compiler */ 249#define EMPTY /* required for microsofts broken pseudo-c compiler */
507} 508}
508 509
509void 510void
510ev_feed_fd_event (EV_P_ int fd, int revents) 511ev_feed_fd_event (EV_P_ int fd, int revents)
511{ 512{
513 if (fd >= 0 && fd < anfdmax)
512 fd_event (EV_A_ fd, revents); 514 fd_event (EV_A_ fd, revents);
513} 515}
514 516
515void inline_size 517void inline_size
516fd_reify (EV_P) 518fd_reify (EV_P)
517{ 519{
1162 if (backend) 1164 if (backend)
1163 postfork = 1; 1165 postfork = 1;
1164} 1166}
1165 1167
1166/*****************************************************************************/ 1168/*****************************************************************************/
1169
1170void
1171ev_invoke (EV_P_ void *w, int revents)
1172{
1173 EV_CB_INVOKE ((W)w, revents);
1174}
1167 1175
1168void inline_speed 1176void inline_speed
1169call_pending (EV_P) 1177call_pending (EV_P)
1170{ 1178{
1171 int pri; 1179 int pri;
1532 pendings [ABSPRI (w)][w->pending - 1].w = 0; 1540 pendings [ABSPRI (w)][w->pending - 1].w = 0;
1533 w->pending = 0; 1541 w->pending = 0;
1534 } 1542 }
1535} 1543}
1536 1544
1537void 1545int
1538ev_clear_pending (EV_P_ void *w, int invoke) 1546ev_clear_pending (EV_P_ void *w)
1539{ 1547{
1540 W w_ = (W)w; 1548 W w_ = (W)w;
1541 int pending = w_->pending; 1549 int pending = w_->pending;
1542 1550
1543 if (pending) 1551 if (!pending)
1544 { 1552 return 0;
1553
1554 w_->pending = 0;
1545 ANPENDING *p = pendings [ABSPRI (w_)] + pending - 1; 1555 ANPENDING *p = pendings [ABSPRI (w_)] + pending - 1;
1546
1547 w_->pending = 0;
1548 p->w = 0; 1556 p->w = 0;
1549 1557
1550 if (invoke) 1558 return p->events;
1551 EV_CB_INVOKE (w_, p->events);
1552 }
1553} 1559}
1554 1560
1555void inline_size 1561void inline_size
1556pri_adjust (EV_P_ W w) 1562pri_adjust (EV_P_ W w)
1557{ 1563{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines