52eebb07f6c4e3959c45929f659fcabe079ef613
3 #include "eglglobals.h"
4 #include "egldisplay.h"
9 static _EGL_DECLARE_MUTEX(_eglGlobalMutex
);
10 struct _egl_global _eglGlobal
=
12 &_eglGlobalMutex
, /* Mutex */
13 NULL
, /* DisplayList */
14 2, /* NumAtExitCalls */
16 /* default AtExitCalls, called in reverse order */
17 _eglUnloadDrivers
, /* always called last */
27 for (i
= _eglGlobal
.NumAtExitCalls
- 1; i
>= 0; i
--)
28 _eglGlobal
.AtExitCalls
[i
]();
33 _eglAddAtExitCall(void (*func
)(void))
36 static EGLBoolean registered
= EGL_FALSE
;
38 _eglLockMutex(_eglGlobal
.Mutex
);
42 registered
= EGL_TRUE
;
45 assert(_eglGlobal
.NumAtExitCalls
< ARRAY_SIZE(_eglGlobal
.AtExitCalls
));
46 _eglGlobal
.AtExitCalls
[_eglGlobal
.NumAtExitCalls
++] = func
;
48 _eglUnlockMutex(_eglGlobal
.Mutex
);