Add xcb_xlib_lock and xcb_xlib_unlock, a special-purpose two-level recursive lock...
[free-sw/xcb/libxcb] / src / xcbint.h
index 1a71696..d81e787 100644 (file)
@@ -113,6 +113,15 @@ int _xcb_in_read(xcb_connection_t *c);
 int _xcb_in_read_block(xcb_connection_t *c, void *buf, int nread);
 
 
+/* xcb_xlib.c */
+
+typedef struct _xcb_xlib {
+    int lock;
+    pthread_t thread;
+    pthread_cond_t cond;
+} _xcb_xlib;
+
+
 /* xcb_xid.c */
 
 typedef struct _xcb_xid {
@@ -150,6 +159,7 @@ struct xcb_connection_t {
 
     /* I/O data */
     pthread_mutex_t iolock;
+    _xcb_xlib xlib;
     _xcb_in in;
     _xcb_out out;
 
@@ -170,4 +180,10 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info);
 #pragma GCC visibility pop
 #endif
 
+
+/* xcb_conn.c symbols visible to xcb-xlib */
+
+void _xcb_lock_io(xcb_connection_t *c);
+void _xcb_unlock_io(xcb_connection_t *c);
+
 #endif