Apparently at least the GNU C library will deadlock when pthread_once is
called recursively on the same control variable. This behaviour of the
library doesn't seem to be consistent with the POSIX standard, but it's
easy enough to avoid in this instance.
This can all go away once all the error paths have been updated to
cdecl__set_error.