Index: source/libvpx/vpx_ports/vpx_once.h |
=================================================================== |
--- source/libvpx/vpx_ports/vpx_once.h (revision 290053) |
+++ source/libvpx/vpx_ports/vpx_once.h (working copy) |
@@ -73,6 +73,33 @@ |
} |
+#elif CONFIG_MULTITHREAD && defined(__OS2__) |
+#define INCL_DOS |
+#include <os2.h> |
+static void once(void (*func)(void)) |
+{ |
+ static int done; |
+ |
+ /* If the initialization is complete, return early. */ |
+ if(done) |
+ return; |
+ |
+ /* Causes all other threads in the process to block themselves |
+ * and give up their time slice. |
+ */ |
+ DosEnterCritSec(); |
+ |
+ if (!done) |
+ { |
+ func(); |
+ done = 1; |
+ } |
+ |
+ /* Restores normal thread dispatching for the current process. */ |
+ DosExitCritSec(); |
+} |
+ |
+ |
#elif CONFIG_MULTITHREAD && HAVE_PTHREAD_H |
#include <pthread.h> |
static void once(void (*func)(void)) |