summaryrefslogtreecommitdiff
path: root/src/dispatch_common.c
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2017-07-05 16:54:15 -0400
committerAdam Jackson <ajax@redhat.com>2017-07-14 12:53:02 -0400
commit7ff061a944119ccb1c79b9755dd6b775c9984a1c (patch)
tree8b4460400d46310b90de2177e102b6254ddbb8ce /src/dispatch_common.c
parente0426c94f6d0b45452d7a5f1b60a0d569be0db47 (diff)
downloadlibepoxy-7ff061a944119ccb1c79b9755dd6b775c9984a1c.tar.gz
Add epoxy_set_resolver_failure_handler()
Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'src/dispatch_common.c')
-rw-r--r--src/dispatch_common.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/dispatch_common.c b/src/dispatch_common.c
index 87bd98a..7ef0536 100644
--- a/src/dispatch_common.c
+++ b/src/dispatch_common.c
@@ -845,3 +845,21 @@ WRAPPER(epoxy_glEnd)(void)
PFNGLBEGINPROC epoxy_glBegin = epoxy_glBegin_wrapped;
PFNGLENDPROC epoxy_glEnd = epoxy_glEnd_wrapped;
+
+epoxy_resolver_failure_handler_t epoxy_resolver_failure_handler;
+
+epoxy_resolver_failure_handler_t
+epoxy_set_resolver_failure_handler(epoxy_resolver_failure_handler_t handler)
+{
+#ifdef _WIN32
+ return InterlockedExchangePointer(&epoxy_resolver_failure_handler,
+ handler);
+#else
+ epoxy_resolver_failure_handler_t old;
+ pthread_mutex_lock(&api.mutex);
+ old = epoxy_resolver_failure_handler;
+ epoxy_resolver_failure_handler = handler;
+ pthread_mutex_unlock(&api.mutex);
+ return old;
+#endif
+}