X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fxcb_out.c;fp=src%2Fxcb_out.c;h=ad4240a3ba75e8e5060412a7dd13966ed120b0b2;hb=059ca642c76639fee958dc6054070de85e257e98;hp=000b1211bd12f131552b9adfd8ee49085ff8d521;hpb=d989656cde2ee7a4a66b2065209ef389495f3452;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/xcb_out.c b/src/xcb_out.c index 000b121..ad4240a 100644 --- a/src/xcb_out.c +++ b/src/xcb_out.c @@ -187,10 +187,10 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect workaround = WORKAROUND_GLX_GET_FB_CONFIGS_BUG; /* get a sequence number and arrange for delivery. */ - _xcb_lock_io(c); + pthread_mutex_lock(&c->iolock); /* wait for other writing threads to get out of my way. */ while(c->out.writing) - _xcb_wait_io(c, &c->out.cond); + pthread_cond_wait(&c->out.cond, &c->iolock); request = ++c->out.request; /* send GetInputFocus (sync_req) when 64k-2 requests have been sent without @@ -231,7 +231,7 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect _xcb_conn_shutdown(c); request = 0; } - _xcb_unlock_io(c); + pthread_mutex_unlock(&c->iolock); return request; } @@ -240,9 +240,9 @@ int xcb_flush(xcb_connection_t *c) int ret; if(c->has_error) return 0; - _xcb_lock_io(c); + pthread_mutex_lock(&c->iolock); ret = _xcb_out_flush_to(c, c->out.request); - _xcb_unlock_io(c); + pthread_mutex_unlock(&c->iolock); return ret; } @@ -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) - _xcb_wait_io(c, &c->out.cond); + pthread_cond_wait(&c->out.cond, &c->iolock); assert(XCB_SEQUENCE_COMPARE(c->out.request_written, >=, request)); return 1; }