ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/EV.xs
(Generate patch)

Comparing EV/EV.xs (file contents):
Revision 1.2 by root, Fri Oct 26 16:51:27 2007 UTC vs.
Revision 1.3 by root, Fri Oct 26 17:24:18 2007 UTC

56 56
57static void e_cb (int fd, short events, void *arg); 57static void e_cb (int fd, short events, void *arg);
58 58
59static int sv_fileno (SV *fh) 59static int sv_fileno (SV *fh)
60{ 60{
61 if (fh)
62 {
63 SvGETMAGIC (fh); 61 SvGETMAGIC (fh);
64 62
65 if (SvROK (fh)) 63 if (SvROK (fh))
66 fh = SvRV (fh); 64 fh = SvRV (fh);
67 65
68 if (SvTYPE (fh) == SVt_PVGV) 66 if (SvTYPE (fh) == SVt_PVGV)
69 return PerlIO_fileno (IoIFP (sv_2io (fh))); 67 return PerlIO_fileno (IoIFP (sv_2io (fh)));
70 68
71 if (SvIOK (fh)) 69 if (SvIOK (fh))
72 return SvIV (fh); 70 return SvIV (fh);
73 }
74 71
75 return -1; 72 return -1;
76} 73}
77 74
78static Event 75static Event
283 280
284int event_dispatch () 281int event_dispatch ()
285 282
286int event_loop (int flags = 0) 283int event_loop (int flags = 0)
287 284
288int event_loopexit (double after) 285int event_loopexit (double after = 0)
289 CODE: 286 CODE:
290{ 287{
291 struct timeval tv; 288 struct timeval tv;
292 tv_set (&tv, after); 289 tv_set (&tv, after);
293 event_loopexit (&tv); 290 event_loopexit (&tv);
294} 291}
295 292
296Event event (SV *cb) 293Event event (SV *cb)
297 CODE: 294 CODE:
298 RETVAL = e_new (0, 0, cb); 295 RETVAL = e_new (NEWSV (0, 0), 0, cb);
299 OUTPUT: 296 OUTPUT:
300 RETVAL 297 RETVAL
301 298
302Event io (SV *fh, short events, SV *cb) 299Event io (SV *fh, short events, SV *cb)
303 ALIAS: 300 ALIAS:
310 307
311Event timer (double after, int repeat, SV *cb) 308Event timer (double after, int repeat, SV *cb)
312 ALIAS: 309 ALIAS:
313 timer_ns = 1 310 timer_ns = 1
314 CODE: 311 CODE:
315 RETVAL = e_new (0, 0, cb); 312 RETVAL = e_new (NEWSV (0, 0), 0, cb);
316 RETVAL->timeout = after; 313 RETVAL->timeout = after;
317 RETVAL->interval = repeat; 314 RETVAL->interval = repeat;
318 if (!ix) e_start (RETVAL); 315 if (!ix) e_start (RETVAL);
319 OUTPUT: 316 OUTPUT:
320 RETVAL 317 RETVAL
321 318
322Event timer_abs (double at, double interval, SV *cb) 319Event timer_abs (double at, double interval, SV *cb)
323 ALIAS: 320 ALIAS:
324 timer_abs_ns = 1 321 timer_abs_ns = 1
325 CODE: 322 CODE:
326 RETVAL = e_new (0, 0, cb); 323 RETVAL = e_new (NEWSV (0, 0), 0, cb);
327 RETVAL->timeout = at; 324 RETVAL->timeout = at;
328 RETVAL->interval = interval; 325 RETVAL->interval = interval;
329 RETVAL->abstime = 1; 326 RETVAL->abstime = 1;
330 if (!ix) e_start (RETVAL); 327 if (!ix) e_start (RETVAL);
331 OUTPUT: 328 OUTPUT:
405 CODE: 402 CODE:
406 e_stop (ev); 403 e_stop (ev);
407 SvREFCNT_dec (ev->cb); 404 SvREFCNT_dec (ev->cb);
408 SvREFCNT_dec (ev->fh); 405 SvREFCNT_dec (ev->fh);
409 406
410void cb (Event ev, SV *new_cb) 407SV *cb (Event ev, SV *new_cb = 0)
411 CODE: 408 CODE:
409 RETVAL = newSVsv (ev->cb);
410 if (items > 1)
412 sv_setsv (ev->cb, new_cb); 411 sv_setsv (ev->cb, new_cb);
412 OUTPUT:
413 RETVAL
413 414
414SV *fh (Event ev, SV *new_fh = 0) 415SV *fh (Event ev, SV *new_fh = 0)
415 ALIAS: 416 ALIAS:
416 signal = 0 417 signal = 0
417 CODE: 418 CODE:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines