Did a bit more experimenting, it seems to freeze only SOME of the time: zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: 1 { say "Run $_"; done } }' Run 0 ^C zoffix@VirtualBox:~$ perl6 -v This is Rakudo version 2016.06-154-g55c359e built on MoarVM version 2016.06-9-g8fc21d5 implementing Perl 6.c. zoffix@VirtualBox:~$
But doesn't ever freeze if done is called non-first run, even if I set a tiny delay between intervals: zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: .01 { say "Run $_"; done if $_ >= 1 } }' Run 0 Run 1 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: .01 { say "Run $_"; done if $_ >= 1 } }' Run 0 Run 1 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: .01 { say "Run $_"; done if $_ >= 1 } }' Run 0 Run 1 zoffix@VirtualBox:~$ perl6 -e 'react { whenever Supply.interval: .01 { say "Run $_"; done if $_ >= 1 } }' Run 0 Run 1