Win32 doesn't do signals (much), but has several more powerful alternatives. Take a look at Win32::IPC, Win32::Semaphore, Win32::Event, Win32::Mutex etc.
Here's one way of achieving your requirement.
#! perl -slw use strict; use Win32::Event; my $eventName = "MyEvent.$$"; print $eventName; my $event = new Win32::Event( 0, 0, $eventName ); my $timeout = rand 60000; print "Spawning a background script to wake me up in ", $timeout / 100 +0, " seconds"; ( my $cmd = <<EOP ) =~ s[\s+][ ]g; perl -MWin32::Event -wle" Win32::Sleep shift; print 'Waking them'; \$e=Win32::Event->open(shift) and \$e->set or die \$^E " $timeout $eventName EOP system 1, $cmd; $timeout /= 1000; my $rv = 0; print "Event should occur in ", int( --$timeout ) until $rv = $event- +>wait( 1000 ); print $rv ? 'Woken' : 'Event abandoned'; __END__ [20:54:53.64] P:\test>412941 MyEvent.648 Spawning a background script to wake me up in 17.080078125 seconds Event should occur in 16 Event should occur in 15 Event should occur in 14 Event should occur in 13 Event should occur in 12 Event should occur in 11 Event should occur in 10 Event should occur in 9 Event should occur in 8 Event should occur in 7 Event should occur in 6 Event should occur in 5 Event should occur in 4 Event should occur in 3 Event should occur in 2 Event should occur in 1 Event should occur in 0 Waking them Woken
In reply to Re: how to implement interprocess communication
by BrowserUk
in thread how to implement interprocess communication
by redss
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |