P99

◆ P99_THROW_CALL_THRD

#define P99_THROW_CALL_THRD (   F,
  ... 
)    p00_throw_call_thrd(F(__VA_ARGS__), p00_unwind_top, P99_STRINGIFY(__LINE__), __func__, #F ", no thrd_success")

Wrap a "thread" function call to F such that it throws an error on failure.

In C thread interface functions return an int to signal success (thrd_success) or an error. This wrapper makes this transparent such that it ensures that the error code is always checked, and if an error occurs the value is thrown.

Returns
thrd_success if the call was successful. Never returns if it wasn't.
See also
P99_THROW_CALL_ZERO for a similar macro that checks if the return value is 0
P99_THROW_CALL_NEG for a similar macro that checks if the return value is negative
P99_THROW_CALL_VOIDP for a similar macro that checks a pointer return value

Definition at line 372 of file p99_try.h.