+#ifndef REGTEST\r
#include <threads.h>\r
\r
void _PDCLIB_call_once(_PDCLIB_once_flag *flag, void (*func)(void))\r
{\r
- if(*flag != _PDCLIB_ONCE_FLAG_DONE) {\r
+ if(!_PDCLIB_ONCE_FLAG_IS_DONE(flag)) {\r
func();\r
- *flag = _PDCLIB_ONCE_FLAG_DONE;\r
+ *flag = 1;\r
}\r
}\r
+#endif\r
\r
#ifdef TEST\r
#include <_PDCLIB_test.h>\r
\r
+#ifndef REGTEST\r
static int count = 0;\r
-once_flag once = ONCE_FLAG_INIT;\r
+static once_flag once = ONCE_FLAG_INIT;\r
\r
static void do_once(void)\r
{\r
count++;\r
}\r
+#endif\r
\r
int main( void )\r
{\r
+#ifndef REGTEST\r
TESTCASE(count == 0);\r
call_once(&once, do_once);\r
TESTCASE(count == 1);\r
TESTCASE(count == 1);\r
do_once();\r
TESTCASE(count == 2);\r
+#endif\r
return TEST_RESULTS;\r
}\r
\r