1*820c1a8dSHiroo HAYASHI /* Init guards, somewhat like spinlocks (native Windows implementation). 2*820c1a8dSHiroo HAYASHI Copyright (C) 2005-2021 Free Software Foundation, Inc. 3*820c1a8dSHiroo HAYASHI 4*820c1a8dSHiroo HAYASHI This file is free software: you can redistribute it and/or modify 5*820c1a8dSHiroo HAYASHI it under the terms of the GNU Lesser General Public License as 6*820c1a8dSHiroo HAYASHI published by the Free Software Foundation; either version 2.1 of the 7*820c1a8dSHiroo HAYASHI License, or (at your option) any later version. 8*820c1a8dSHiroo HAYASHI 9*820c1a8dSHiroo HAYASHI This file is distributed in the hope that it will be useful, 10*820c1a8dSHiroo HAYASHI but WITHOUT ANY WARRANTY; without even the implied warranty of 11*820c1a8dSHiroo HAYASHI MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12*820c1a8dSHiroo HAYASHI GNU Lesser General Public License for more details. 13*820c1a8dSHiroo HAYASHI 14*820c1a8dSHiroo HAYASHI You should have received a copy of the GNU Lesser General Public License 15*820c1a8dSHiroo HAYASHI along with this program. If not, see <https://www.gnu.org/licenses/>. */ 16*820c1a8dSHiroo HAYASHI 17*820c1a8dSHiroo HAYASHI /* Written by Bruno Haible <bruno@clisp.org>, 2005. 18*820c1a8dSHiroo HAYASHI Based on GCC's gthr-win32.h. */ 19*820c1a8dSHiroo HAYASHI 20*820c1a8dSHiroo HAYASHI #ifndef _WINDOWS_INITGUARD_H 21*820c1a8dSHiroo HAYASHI #define _WINDOWS_INITGUARD_H 22*820c1a8dSHiroo HAYASHI 23*820c1a8dSHiroo HAYASHI #define WIN32_LEAN_AND_MEAN /* avoid including junk */ 24*820c1a8dSHiroo HAYASHI #include <windows.h> 25*820c1a8dSHiroo HAYASHI 26*820c1a8dSHiroo HAYASHI typedef struct 27*820c1a8dSHiroo HAYASHI { 28*820c1a8dSHiroo HAYASHI volatile int done; 29*820c1a8dSHiroo HAYASHI volatile LONG started; 30*820c1a8dSHiroo HAYASHI } 31*820c1a8dSHiroo HAYASHI glwthread_initguard_t; 32*820c1a8dSHiroo HAYASHI 33*820c1a8dSHiroo HAYASHI #define GLWTHREAD_INITGUARD_INIT { 0, -1 } 34*820c1a8dSHiroo HAYASHI 35*820c1a8dSHiroo HAYASHI #endif /* _WINDOWS_INITGUARD_H */ 36