projects
/
free-sw
/
xcb
/
libxcb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "fix deadlock with xcb_take_socket/return_socket v3"
[free-sw/xcb/libxcb]
/
src
/
xcbint.h
diff --git
a/src/xcbint.h
b/src/xcbint.h
index
7f9ab28
..
b25f03b
100644
(file)
--- a/
src/xcbint.h
+++ b/
src/xcbint.h
@@
-79,15
+79,24
@@
void *_xcb_map_remove(_xcb_map *q, unsigned int key);
/* xcb_out.c */
/* xcb_out.c */
-typedef void (*xcb_return_socket_func_t)(void *closure);
+#if HAVE_SENDMSG
+#define XCB_MAX_PASS_FD 16
+
+typedef struct _xcb_fd {
+ int fd[XCB_MAX_PASS_FD];
+ int nfd;
+ int ifd;
+} _xcb_fd;
+#endif
typedef struct _xcb_out {
pthread_cond_t cond;
int writing;
typedef struct _xcb_out {
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;
void *socket_closure;
-
unsigned int socket_seq
;
+
int socket_moving
;
char queue[XCB_QUEUE_BUFFER_SIZE];
int queue_len;
char queue[XCB_QUEUE_BUFFER_SIZE];
int queue_len;
@@
-101,6
+110,9
@@
typedef struct _xcb_out {
xcb_big_requests_enable_cookie_t cookie;
uint32_t value;
} maximum_request_length;
xcb_big_requests_enable_cookie_t cookie;
uint32_t value;
} maximum_request_length;
+#if HAVE_SENDMSG
+ _xcb_fd out_fd;
+#endif
} _xcb_out;
int _xcb_out_init(_xcb_out *out);
} _xcb_out;
int _xcb_out_init(_xcb_out *out);
@@
-133,6
+145,10
@@
typedef struct _xcb_in {
struct pending_reply *pending_replies;
struct pending_reply **pending_replies_tail;
struct pending_reply *pending_replies;
struct pending_reply **pending_replies_tail;
+#if HAVE_SENDMSG
+ _xcb_fd in_fd;
+#endif
+ struct xcb_special_event *special_events;
} _xcb_in;
int _xcb_in_init(_xcb_in *in);
} _xcb_in;
int _xcb_in_init(_xcb_in *in);