# New Ticket Created by  ab5tract 
# Please include the string:  [perl #127587]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=127587 >


I discovered this behavior while using IO.watch, but it is also
demonstrable with a simple interval supply.

It occurs with both Proc::Async and qq:x. I've included both for easy
testing. The 'echo' never actually runs. I only get 'interval 1' and then
the script returns.

# Proc::Async

sub MAIN {
    react {
        whenever Supply.interval(1) {
            start {
                my $phrase = "interval {++$}" .say;
                my $cmd = Proc::Async.new: 'echo', "echo: $phrase";
                $cmd.stdout.tap: *.say;
                await $cmd.start;
            }
        }
    }
}

## qq:x

sub MAIN {
    react {
        whenever Supply.interval(1) {
            start {
                my $phrase = "interval {++$}" .say;
                qq:x[ echo  "echo: $phrase" ];
            }
        }
    }
}

Reply via email to