On 15/08/2025 19:44, David Alayachew wrote:
:

So, when someone recently challenged me to use Joiners (rather than the old STS preview versions I was used to), I started creating Joiners to handle all sorts of failure and outcomes. At first, a lot of them could be handled by the Joiner.awaitUntil(), where I would just check and see if the task failed, then handle the error. But as I got further and further along, I started needing to add state to my Joiners in order to get the failure handling that I wanted. For example, if a certain number of timeouts occur, cancel the scope. Well, that necessitates an AtomicNumber.

I assume you mean allUntil(Predicate), which is intended to make it easy to create a Joiner that implements a cancellation policy. Joiners are inherently stateful as many will accumulate results or exceptions, or maybe just count failures.  With allUntil then it does mean that the predicate may not be pure function, is that the reason for the hesitation? Beyond allUntil does mean implementing the Joiner interface. I think your mails are pondering whether there is something between allUntil and implementing Joiner yourself. I don't think we've had enough feedback to date to know if there is something needed there. One thing that would help is if your could enumerate a few of the Joiners that you implemented. I'm wondering if they are general purpose of very specific.

-Alan

Reply via email to