X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FIPC-MorseSignals.git;a=blobdiff_plain;f=lib%2FIPC%2FMorseSignals.pm;h=6ed53f07909dea9d08e8101851625e1f218d8497;hp=f4e96e82f870e877157ffb10f812d84be8e90615;hb=964b2609a32772c89d0fc8d2567c6e089fb7c3be;hpb=db7266fa5be4347aac1d32a994d6529c7b5a4afb diff --git a/lib/IPC/MorseSignals.pm b/lib/IPC/MorseSignals.pm index f4e96e8..6ed53f0 100644 --- a/lib/IPC/MorseSignals.pm +++ b/lib/IPC/MorseSignals.pm @@ -9,18 +9,24 @@ IPC::MorseSignals - Communicate between processes with Morse signals. =head1 VERSION -Version 0.14 +Version 0.16 =cut -our $VERSION = '0.14'; +our $VERSION = '0.16'; + +=head1 WARNING + +Due to the POSIX signals specification (which I wasn't aware of at the time I wrote this module), this module is by nature completely unreliable and will never work properly. +It is therefore B. +Please don't use it (if you were actually crazy enough to use it). =head1 SYNOPSIS # In the sender process use IPC::MorseSignals::Emitter; - my $deuce = new IPC::MorseSignals::Emitter speed => 1024; + my $deuce = IPC::MorseSignals::Emitter->new(speed => 1024); $deuce->post('HLAGH') for 1 .. 3; $deuce->send($pid); @@ -30,24 +36,34 @@ our $VERSION = '0.14'; use IPC::MorseSignals::Receiver; local %SIG; - my $pants = new IPC::MorseSignals::Receiver \%SIG, done => sub { + my $pants = IPC::MorseSignals::Receiver->new(\%SIG, done => sub { print STDERR "GOT $_[1]\n"; - }; + }); =head1 DESCRIPTION -This module implements a rare form of IPC by sending Morse-like signals through C and C. Both of those signals are used, so you won't be able to keep them for something else when you use this module. +This module implements a rare form of IPC by sending Morse-like signals through C and C. +Both of those signals are used, so you won't be able to keep them for something else when you use this module. =over 4 -=item L is a base class for emitters ; +=item * + +L is a base class for emitters ; -=item L is a base class for receivers. +=item * + +L is a base class for receivers. =back But, seriously, use something else for your IPC. :) +=head1 CAVEATS + +When the same signal is sent several times in a row to a process, the POSIX standard does not guarantee that the relevant signal handler will be called for each of the notifications. +This will result in malformed messages if the transfer speed is so high that the operating system does not have the time to call the signal handler for each bit. + =head1 DEPENDENCIES You need the complete L distribution. @@ -68,11 +84,12 @@ For truly useful IPC, search for shared memory, pipes and semaphores. Vincent Pit, C<< >>, L. -You can contact me by mail or on #perl @ FreeNode (vincent or Prof_Vince). +You can contact me by mail or on C (vincent). =head1 BUGS -Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. +Please report any bugs or feature requests to C, or through the web interface at L. +I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT @@ -86,7 +103,7 @@ Thanks for the inspiration, mofino ! I hope this module will fill all your IPC n =head1 COPYRIGHT & LICENSE -Copyright 2007-2008 Vincent Pit, all rights reserved. +Copyright 2007,2008,2013,2017 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.