Hi!
Às 00:16 de 30/12/20, Elizabeth Mattijsen escreveu:
react, feels like a code smell to me. An `await` will block the `react` block
from processing other messages until the `await` returns. Which feels like it
is opening up a large window of dead-locking opportunities.
I changed the tap code to:
$channel.Supply.tap(->$val {
react {
whenever $conn.print("[$consumer] SENDING\r\n").Supply ->$result {
given $result {
when Kept {
whenever $conn.Supply ->$line {
print "[$consumer] $line";
if $line ~~ /^340/ {
whenever $conn.print("[$consumer]: value
$val\r\n").Supply ->$r {
#note("[$consumer]: success") }
}else {
done;
}
}
}
}
}
}
}, done=>{say "[$consumer] DONE!";});
And it still hangs from time to time.
Best regards,
David Santiago