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

Comparing EV/EV.xs (file contents):
Revision 1.147 by root, Thu Oct 28 04:59:35 2010 UTC vs.
Revision 1.154 by root, Tue Jan 11 02:31:24 2011 UTC

15 return s_fileno (fh, 0); 15 return s_fileno (fh, 0);
16} 16}
17 17
18#define EV_STANDALONE 1 18#define EV_STANDALONE 1
19#define EV_PROTOTYPES 1 19#define EV_PROTOTYPES 1
20#define EV_USE_CLOCK_SYSCALL 0 /* as long as we need pthreads anyways... */
20#define EV_USE_NANOSLEEP EV_USE_MONOTONIC 21#define EV_USE_NANOSLEEP EV_USE_MONOTONIC
21#define EV_H <ev.h> 22#define EV_H <ev.h>
22#define EV_CONFIG_H error 23#define EV_CONFIG_H error
23#include "EV/EVAPI.h" 24#include "EV/EVAPI.h"
24 25
208 209
209 if (expect_true (sv_events_cache)) 210 if (expect_true (sv_events_cache))
210 { 211 {
211 sv_events = sv_events_cache; sv_events_cache = 0; 212 sv_events = sv_events_cache; sv_events_cache = 0;
212 SvIV_set (sv_events, revents); 213 SvIV_set (sv_events, revents);
214 SvIOK_only (sv_events);
213 } 215 }
214 else 216 else
215 { 217 {
216 sv_events = newSViv (revents); 218 sv_events = newSViv (revents);
217 SvREADONLY_on (sv_events); 219 SvREADONLY_on (sv_events);
341 croak ("illegal file descriptor or filehandle (either no attached file descriptor or illegal value): %s", SvPV_nolen (fh)); 343 croak ("illegal file descriptor or filehandle (either no attached file descriptor or illegal value): %s", SvPV_nolen (fh));
342 344
343#define CHECK_SIG(sv,num) if ((num) < 0) \ 345#define CHECK_SIG(sv,num) if ((num) < 0) \
344 croak ("illegal signal number or name: %s", SvPV_nolen (sv)); 346 croak ("illegal signal number or name: %s", SvPV_nolen (sv));
345 347
348static void
346EV_INLINE default_fork (void) 349default_fork (void)
347{ 350{
348 ev_loop_fork (EV_DEFAULT_UC); 351 ev_loop_fork (EV_DEFAULT_UC);
349} 352}
350 353
351///////////////////////////////////////////////////////////////////////////// 354/////////////////////////////////////////////////////////////////////////////
398 const_iv (EV, BACKEND_EPOLL) 401 const_iv (EV, BACKEND_EPOLL)
399 const_iv (EV, BACKEND_KQUEUE) 402 const_iv (EV, BACKEND_KQUEUE)
400 const_iv (EV, BACKEND_DEVPOLL) 403 const_iv (EV, BACKEND_DEVPOLL)
401 const_iv (EV, BACKEND_PORT) 404 const_iv (EV, BACKEND_PORT)
402 const_iv (EV, BACKEND_ALL) 405 const_iv (EV, BACKEND_ALL)
406 const_iv (EV, BACKEND_MASK)
403 const_iv (EV, FLAG_AUTO) 407 const_iv (EV, FLAG_AUTO)
404 const_iv (EV, FLAG_FORKCHECK) 408 const_iv (EV, FLAG_FORKCHECK)
405 const_iv (EV, FLAG_SIGNALFD) 409 const_iv (EV, FLAG_SIGNALFD)
410 const_iv (EV, FLAG_NOSIGMASK)
406 const_iv (EV, FLAG_NOENV) 411 const_iv (EV, FLAG_NOENV)
407 const_iv (EV, FLAG_NOINOTIFY) 412 const_iv (EV, FLAG_NOINOTIFY)
408 413
409 const_iv (EV_, VERSION_MAJOR) 414 const_iv (EV_, VERSION_MAJOR)
410 const_iv (EV_, VERSION_MINOR) 415 const_iv (EV_, VERSION_MINOR)
550 555
551void ev_sleep (NV interval) 556void ev_sleep (NV interval)
552 557
553NV ev_time () 558NV ev_time ()
554 559
560void ev_feed_signal (SV *signal)
561 CODE:
562{
563 Signal signum = s_signum (signal);
564 CHECK_SIG (signal, signum);
565
566 ev_feed_signal (signum);
567}
568
555NV ev_now () 569NV ev_now ()
556 C_ARGS: evapi.default_loop 570 C_ARGS: evapi.default_loop
557 571
558void ev_now_update () 572void ev_now_update ()
559 C_ARGS: evapi.default_loop 573 C_ARGS: evapi.default_loop
757 ev_stat_set (RETVAL, SvPVbyte_nolen (e_fh (RETVAL)), interval); 771 ev_stat_set (RETVAL, SvPVbyte_nolen (e_fh (RETVAL)), interval);
758 if (!ix) START (stat, RETVAL); 772 if (!ix) START (stat, RETVAL);
759 OUTPUT: 773 OUTPUT:
760 RETVAL 774 RETVAL
761 775
776#ifndef EV_NO_LOOPS
777
762ev_embed *embed (struct ev_loop *loop, SV *cb = 0) 778ev_embed *embed (struct ev_loop *loop, SV *cb = 0)
763 ALIAS: 779 ALIAS:
764 embed_ns = 1 780 embed_ns = 1
765 CODE: 781 CODE:
766{ 782{
772 ev_embed_set (RETVAL, loop); 788 ev_embed_set (RETVAL, loop);
773 if (!ix) START (embed, RETVAL); 789 if (!ix) START (embed, RETVAL);
774} 790}
775 OUTPUT: 791 OUTPUT:
776 RETVAL 792 RETVAL
793
794#endif
777 795
778ev_async *async (SV *cb) 796ev_async *async (SV *cb)
779 ALIAS: 797 ALIAS:
780 async_ns = 1 798 async_ns = 1
781 CODE: 799 CODE:
1324 CODE: 1342 CODE:
1325 RETVAL = boolSV (ev_async_pending (w)); 1343 RETVAL = boolSV (ev_async_pending (w));
1326 OUTPUT: 1344 OUTPUT:
1327 RETVAL 1345 RETVAL
1328 1346
1347#ifndef EV_NO_LOOPS
1348
1329MODULE = EV PACKAGE = EV::Loop PREFIX = ev_ 1349MODULE = EV PACKAGE = EV::Loop PREFIX = ev_
1330 1350
1331SV *new (SV *klass, unsigned int flags = 0) 1351SV *new (SV *klass, unsigned int flags = 0)
1332 CODE: 1352 CODE:
1333{ 1353{
1572 SvOK (timeout) ? SvNV (timeout) : -1., 1592 SvOK (timeout) ? SvNV (timeout) : -1.,
1573 e_once_cb, 1593 e_once_cb,
1574 newSVsv (cb) 1594 newSVsv (cb)
1575 ); 1595 );
1576 1596
1597#endif
1598

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines