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

Comparing Async-Interrupt/Interrupt.pm (file contents):
Revision 1.21 by root, Thu Jul 30 03:59:47 2009 UTC vs.
Revision 1.27 by root, Sat May 15 00:08:48 2010 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.0'; 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
536 536
537=back 537=back
538 538
539=head1 THE Async::Interrupt::EventPipe CLASS 539=head1 THE Async::Interrupt::EventPipe CLASS
540 540
541Pipes are the predominent utility to make asynchronous signals 541Pipes are the predominant utility to make asynchronous signals
542synchronous. However, pipes are hard to come by: they don't exist on the 542synchronous. However, pipes are hard to come by: they don't exist on the
543broken windows platform, and on GNU/Linux systems, you might want to use 543broken windows platform, and on GNU/Linux systems, you might want to use
544an C<eventfd> instead. 544an C<eventfd> instead.
545 545
546This class creates selectable event pipes in a portable fashion: on 546This class creates selectable event pipes in a portable fashion: on
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