ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/Async-Interrupt/Interrupt.pm
(Generate patch)

Comparing cvsroot/Async-Interrupt/Interrupt.pm (file contents):
Revision 1.26 by root, Wed Mar 31 00:47:11 2010 UTC vs.
Revision 1.28 by root, Wed Nov 23 02:33:48 2011 UTC

233use common::sense; 233use common::sense;
234 234
235BEGIN { 235BEGIN {
236 # the next line forces initialisation of internal 236 # the next line forces initialisation of internal
237 # signal handling variables, otherwise, PL_sig_pending 237 # signal handling variables, otherwise, PL_sig_pending
238 # etc. will be null pointers. 238 # etc. might be null pointers.
239 $SIG{KILL} = sub { }; 239 $SIG{KILL} = sub { };
240 240
241 our $VERSION = '1.04'; 241 our $VERSION = '1.05';
242 242
243 require XSLoader; 243 require XSLoader;
244 XSLoader::load ("Async::Interrupt", $VERSION); 244 XSLoader::load ("Async::Interrupt", $VERSION);
245} 245}
246 246
432When you expect a lot of signals (e.g. when using SIGIO), then enabling 432When you expect a lot of signals (e.g. when using SIGIO), then enabling
433signal hysteresis can reduce the number of handler invocations 433signal hysteresis can reduce the number of handler invocations
434considerably, at the cost of two extra syscalls. 434considerably, at the cost of two extra syscalls.
435 435
436Note that setting the signal to C<SIG_IGN> can have unintended side 436Note that setting the signal to C<SIG_IGN> can have unintended side
437effects when you fork and exec other programs, as often they do nto expect 437effects when you fork and exec other programs, as often they do not expect
438signals to be ignored by default. 438signals to be ignored by default.
439 439
440=item $async->block 440=item $async->block
441 441
442=item $async->unblock 442=item $async->unblock
576 576
577=item $epipe->drain 577=item $epipe->drain
578 578
579Drain (empty) the pipe. 579Drain (empty) the pipe.
580 580
581=item ($c_func, $c_arg) = $epipe->signal_func
582
581=item ($c_func, $c_arg) = $epipe->drain_func 583=item ($c_func, $c_arg) = $epipe->drain_func
582 584
583Returns a function pointer and C<void *> argument that can be called to 585These two methods returns a function pointer and C<void *> argument
584have the effect of C<< $epipe->drain >> on the XS level. 586that can be called to have the effect of C<< $epipe->signal >> or C<<
587$epipe->drain >>, respectively, on the XS level.
585 588
586It has the following prototype and needs to be passed the specified 589They both have the following prototype and need to be passed their
587C<$c_arg>, which is a C<void *> cast to C<IV>: 590C<$c_arg>, which is a C<void *> cast to an C<IV>:
588 591
589 void (*c_func) (void *c_arg) 592 void (*c_func) (void *c_arg)
590 593
591An example call would look like: 594An example call would look like:
592 595

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines