upmap(F, L) -> Parent = self(), Ref = make_ref(), [receive {Ref, Result} -> Result end || _ <- [spawn(fun() -> Parent ! {Ref, F(X)} end) || X <- L]]. safe_pmap_set_ok(F, S) -> case [R || R <- upmap( fun (V) -> try F(V) catch Cl:Re -> {Cl, Re} end end, sets:to_list(S)), R =/= ok] of [] -> ok; Errors -> {error, Errors} end.