ConcurrencyUtils
Keywords: net.corda.core.concurrent.ConcurrencyUtils class
Date: 2023-09-18

net.corda.core.concurrent

## Class ConcurrencyUtils

- net.corda.core.concurrent.ConcurrencyUtils

-     public class ConcurrencyUtils

- - ### Constructor Detail

    - #### ConcurrencyUtils

          public ConcurrencyUtils()

  - ### Method Detail

    - #### match

          public static <V,W> W match(@NotNull
                                      java.util.concurrent.Future<V> $this$match,
                                      @NotNull
                                      kotlin.jvm.functions.Function1<? super V,? extends W> success,
                                      @NotNull
                                      kotlin.jvm.functions.Function1<? super java.lang.Throwable,? extends W> failure)

      Invoke `getOrThrow` and pass the value/throwable to success/failure respectively.

      See Also:
        `getOrThrow`

    - #### firstOf

          @NotNull
          public static <V,W> CordaFuture<W> firstOf(@NotNull
                                                              CordaFuture<V>[] futures,
                                                              @NotNull
                                                              kotlin.jvm.functions.Function1<? super net.corda.core.concurrent.CordaFuture<? extends V>,? extends W> handler)

      As soon as a given future becomes done, the handler is invoked with that future as its argument. The result of the handler is copied into the result future, and the handler isn't invoked again. If a given future errors after the result future is done, the error is automatically logged.