[Xcb] XCB I/O mechanism - Native win32 port

Jeetu Golani jeetu.golani at gmail.com
Sat Mar 29 02:22:18 PDT 2008


Hi guys,

As I've mentioned in the list I'm attempting to port the XCB library to Win32.

I'm trying to understand the I/O mechanism used within XCB. As I understand it 
we seem to be using Non-blocking sockets with a synchronous i/o provided by 
the select function within xcb_conn_wait. 

- Win32 has a concept of Overlapped I/O which allows for data to be copied 
directly into the user buffer directly as soon as it arrives into the lower 
layer. It signals a completion routine or an event automatically. 
(http://msdn2.microsoft.com/en-us/library/ms740086.aspx)

- We seem to be using a select function within xcb_conn_wait to poll for the 
state of the socket which in mind means we're using non-blocking sockets with 
a synchronous i/o.

- If using select is synchronous then how would we do a asynchronous i/o 
communication within linux. My limited understanding of the difference is 
that in one the application has to poll for socket state using select and in 
another as soon as the state changes the application is made aware using 
another thread and a notification mechanism. Is this correct? 

- Which would be more efficient with for Win32 Overlapped I/O or sticking to a 
mechanism with select?

I admittedly have little understanding of the above and would appreciate if 
someone could shed light on what would be the preferred mechanism for this 
library.

Bye for now



More information about the Xcb mailing list