Às 13:25 de 05/01/21, Gianni Ceccarelli escreveu:
>
>    received outer 0
>    received outer 1
>    received outer 2
>    received outer 3
>    received inner 0 for outer 0
>    received inner 0 for outer 1
>    received inner 0 for outer 2
>    received inner 0 for outer 3
>    received inner 1 for outer 0
>    received inner 1 for outer 1
>    received inner 1 for outer 2
>    received inner 1 for outer 3
>    received inner 2 for outer 0
>    received inner 2 for outer 1
>    received inner 2 for outer 2
>    received inner 2 for outer 3
>    received inner 3 for outer 0
>    received inner 3 for outer 1
>    received inner 3 for outer 2
>    received inner 3 for outer 3
>
> so the inner ``whenever`` really sets up a separate tap every time
> it's executed.
Is this behaviour expected? It kinda looks weird to me, specially when looking to the output...


>
> If I change ``$inner`` to be a Channel, we only get 4 "received inner"
> lines, as expected, because values in a channel are received exactly
> once.
>
> (If I change ``$outer`` to a Supplier/Supply pair… the program hangs
> without printing anything, because there's a race between the main
> process and the ``start``ed one, so all the ``$outer.emit`` happen
Don't you mean the $outer.send ?

> before the ``react / whenever`` can tap, and ``$done-with-outer``
> never gets kept. Using ``Supplier::Preserving`` fixes that)
>

So IO::Socket::Async::SSL needs to use it, instead of a normal Supply?

Regards,
David Santiago

Reply via email to