Sorry, I knew I'd get the terminology wrong!

It sounds from JENKINS-26033 that you're leaning towards not having a (meaningful) return value from 'branch'. So if I want to record the fact a particular branch failed, I'd have to swallow the exception and rethrow (to cause the sibling-cancel) – at least, I assume the rethrow would cause the sibling-cancel.

Just thinking out loud about the following use-case: I want to run two tasks in parallel. If either one fails, I want to cancel the other, and then continue executing my job. How would I do that in a world where 'cancel_siblings' was an option to 'parallel'. I guess it would be something like this:

def one_failed, two_failed;
try {
   parallel one: {
      try {
          ...
      } catch (x) {
          _one_failed_ = true
          // Need to rethrow to cause parallel to cancel job two
          rethrow             // I assume this is a thing?
      }
   }, two: {
      try {
          ...
      } catch (x) {
          two_failed = true
          rethrow
      }
   }
} catch (x) {
}

... continue on, looking at one_failed and two_failed if needed ...

It's a little messy but I believe it works. I doubt this is a super-common case, so as long as it's possible I think this design works for our needs, at least.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to