À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