summaryrefslogtreecommitdiff
path: root/src/xcb_in.c
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2015-05-14 09:44:05 +0200
committerUli Schlachter <psychon@znc.in>2015-06-12 09:39:13 +0200
commit8584c0e09573a29d8ba7050e3d5afd925b4d8d80 (patch)
treee76366469697d16bbc79881ac605d5d41dde5f07 /src/xcb_in.c
parent658fb4a5f0050db68fdf092936afe596412ef5f7 (diff)
send_fds(): Handle too many outstanding FDs to send
Before this patch, the following code caused an endless loop in send_fds(), because the queue of FDs to send was eventually full, but _xcb_out_flush_to() didn't make any progress, since there was no request to send: while (1) { xcb_send_fd(conn, dup(some_fd)); } Fix this by sending a sync when flushing didn't make any progress. That way we actually have something to send and can attach the pending FDs. Because send_fds() can now send requests, the code in xcb_send_request_with_fds64() has to be changed. It has to call send_fds() before it establishes a good sequence number for the request it wants to send. Signed-off-by: Uli Schlachter <psychon@znc.in>
Diffstat (limited to 'src/xcb_in.c')
0 files changed, 0 insertions, 0 deletions