parlib: Make uth mutex/CV initializers C++ safe (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 27 Apr 2017 19:11:53 +0000 (15:11 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 3 May 2017 16:16:08 +0000 (12:16 -0400)
commit4ccd822993c01e67e2552b1d46709d13958b8fd1
tree71250ab1f330ebceb8c2f5998e89e15403c9ee6d
parentd78323a1528f4c011279265f252c6344ec795b33
parlib: Make uth mutex/CV initializers C++ safe (XCC)

GCC C++ can't handle { { .field = value } }.  It can handle one {}, but not
two.  C doesn't have this problem.  The issue comes up when someone does
something like:

struct my_struct {
uth_mutex_t foo;
}
#define MY_INITIALIZER {UTH_MUTEX_INIT}

icu does this with their umutex.h implementation.  There it is for
pthreads.

For us, we can get away with the non-specific initializers, so long as we
put the parlib_once_t first.

Rebuild your toolchain.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/parlib/include/parlib/uthread.h