#define XCB_PAD(i) (-(i) & 3)
-#define XCB_SEQUENCE_COMPARE(a,op,b) ((int64_t) ((a) - (b)) op 0)
+#define XCB_SEQUENCE_COMPARE(a,op,b) ((int64_t) ((a) - (b)) op 0)
#ifndef offsetof
#define offsetof(type,member) ((size_t) &((type *)0)->member)
/* xcb_out.c */
-typedef void (*xcb_return_socket_func_t)(void *closure);
-
#if HAVE_SENDMSG
-#define XCB_MAX_PASS_FD 16
+#define XCB_MAX_PASS_FD 16
typedef struct _xcb_fd {
int fd[XCB_MAX_PASS_FD];
pthread_cond_t cond;
int writing;
- xcb_return_socket_func_t return_socket;
+ pthread_cond_t socket_cond;
+ void (*return_socket)(void *closure);
void *socket_closure;
- unsigned int socket_seq;
+ int socket_moving;
char queue[XCB_QUEUE_BUFFER_SIZE];
int queue_len;
/* xcb_conn.c */
struct xcb_connection_t {
+ /* This must be the first field; see _xcb_conn_ret_error(). */
int has_error;
/* constant data */