Factor pthread_cond_wait(iolock) to _xcb_wait_io.
authorJamey Sharp <jamey@minilop.net>
Sun, 28 Oct 2007 18:56:08 +0000 (11:56 -0700)
committerJamey Sharp <jamey@minilop.net>
Sun, 28 Oct 2007 18:56:08 +0000 (11:56 -0700)
This parallels the _xcb_lock_io and _xcb_unlock_io factoring.

src/xcb_conn.c
src/xcb_out.c
src/xcbint.h

index 827a12b..9a58bff 100644 (file)
@@ -288,6 +288,11 @@ void _xcb_unlock_io(xcb_connection_t *c)
     pthread_mutex_unlock(&c->iolock);
 }
 
+void _xcb_wait_io(xcb_connection_t *c, pthread_cond_t *cond)
+{
+    pthread_cond_wait(cond, &c->iolock);
+}
+
 int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vector, int *count)
 {
     int ret;
@@ -296,7 +301,7 @@ int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vec
     /* If the thing I should be doing is already being done, wait for it. */
     if(count ? c->out.writing : c->in.reading)
     {
-        pthread_cond_wait(cond, &c->iolock);
+        _xcb_wait_io(c, cond);
         return 1;
     }
 
index caf8ef5..60226e5 100644 (file)
@@ -190,7 +190,7 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect
     _xcb_lock_io(c);
     /* wait for other writing threads to get out of my way. */
     while(c->out.writing)
-        pthread_cond_wait(&c->out.cond, &c->iolock);
+        _xcb_wait_io(c, &c->out.cond);
 
     request = ++c->out.request;
     /* send GetInputFocus (sync) when 64k-2 requests have been sent without
@@ -297,7 +297,7 @@ int _xcb_out_flush_to(xcb_connection_t *c, unsigned int request)
         return _xcb_out_send(c, &vec_ptr, &count);
     }
     while(c->out.writing)
-        pthread_cond_wait(&c->out.cond, &c->iolock);
+        _xcb_wait_io(c, &c->out.cond);
     assert(XCB_SEQUENCE_COMPARE(c->out.request_written, >=, request));
     return 1;
 }
index ab692ee..ab0264f 100644 (file)
@@ -183,6 +183,7 @@ struct xcb_connection_t {
 };
 
 void _xcb_conn_shutdown(xcb_connection_t *c);
+void _xcb_wait_io(xcb_connection_t *c, pthread_cond_t *cond);
 int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vector, int *count);