Skip to content
Snippets Groups Projects
Commit ab75e4c1 authored by Mirar (Pontus Hagland)'s avatar Mirar (Pontus Hagland)
Browse files

bugfix in sequence numbering

Rev: lib/modules/Protocols.pmod/X.pmod/Xlib.pmod:1.29
parent abec7c5e
Branches
Tags
No related merge requests found
...@@ -227,8 +227,6 @@ class Display ...@@ -227,8 +227,6 @@ class Display
/* This function leaves the socket in blocking mode */ /* This function leaves the socket in blocking mode */
int flush() int flush()
{ /* FIXME: Not thread-safe */ { /* FIXME: Not thread-safe */
werror("flush\n");
set_blocking(); set_blocking();
int written = write(buffer); int written = write(buffer);
if (written < strlen(buffer)) if (written < strlen(buffer))
...@@ -693,7 +691,6 @@ class Display ...@@ -693,7 +691,6 @@ class Display
array a; array a;
while(a = pending_actions->get()) while(a = pending_actions->get())
handle_action(a); handle_action(a);
werror("process_pending_actions: nonblock\n");
set_nonblocking(read_callback, write_callback, close_callback); set_nonblocking(read_callback, write_callback, close_callback);
} }
...@@ -749,7 +746,6 @@ class Display ...@@ -749,7 +746,6 @@ class Display
{ {
if (!is_local) if (!is_local)
open_socket(); open_socket();
werror("open: block\n");
set_nonblocking(0, 0, close_callback); set_nonblocking(0, 0, close_callback);
} }
if(!is_local) if(!is_local)
...@@ -788,7 +784,6 @@ class Display ...@@ -788,7 +784,6 @@ class Display
send(msg); send(msg);
if (async) if (async)
{ {
werror("open: nonblock\n");
set_nonblocking(read_callback, write_callback, close_callback); set_nonblocking(read_callback, write_callback, close_callback);
return 1; return 1;
} }
...@@ -810,7 +805,6 @@ class Display ...@@ -810,7 +805,6 @@ class Display
{ {
case ACTION_CONNECT: case ACTION_CONNECT:
get_keyboard_mapping(); get_keyboard_mapping();
werror("connect: nonblock\n");
set_nonblocking(read_callback, write_callback, close_callback); set_nonblocking(read_callback, write_callback, close_callback);
return 1; return 1;
case ACTION_CONNECT_FAILED: case ACTION_CONNECT_FAILED:
...@@ -830,7 +824,7 @@ class Display ...@@ -830,7 +824,7 @@ class Display
#ifdef DEBUG #ifdef DEBUG
debug_requests[DEBUGREQ(sequence_number)] = data; debug_requests[DEBUGREQ(sequence_number)] = data;
#endif #endif
return sequence_number++; return (sequence_number++)&0xffff; // sequence number is just 2 bytes
} }
array blocking_request(object req) array blocking_request(object req)
...@@ -839,14 +833,11 @@ class Display ...@@ -839,14 +833,11 @@ class Display
mixed result = 0; mixed result = 0;
int done = 0; int done = 0;
werror("br: %O\n",mkmapping(indices(req),values(req)));
int n = send_request(req); int n = send_request(req);
flush(); flush();
while(!done) while(!done)
{ {
werror("waiting for reply on "+n+"...\n");
string data = read(0x7fffffff, 1); string data = read(0x7fffffff, 1);
if (!data) if (!data)
{ {
...@@ -857,7 +848,6 @@ werror("waiting for reply on "+n+"...\n"); ...@@ -857,7 +848,6 @@ werror("waiting for reply on "+n+"...\n");
array a; array a;
while (a = process()) while (a = process())
{ {
werror("got reply "+a[0]+": "+a[1]->sequenceNumber+"...\n");
if ((a[0] == ACTION_REPLY) if ((a[0] == ACTION_REPLY)
&& (a[1]->sequenceNumber == n)) && (a[1]->sequenceNumber == n))
{ {
...@@ -882,7 +872,6 @@ werror("got reply "+a[0]+": "+a[1]->sequenceNumber+"...\n"); ...@@ -882,7 +872,6 @@ werror("got reply "+a[0]+": "+a[1]->sequenceNumber+"...\n");
call_out(process_pending_actions, 0); call_out(process_pending_actions, 0);
else else
{ {
werror("blocking_request: nonblock\n");
set_nonblocking(read_callback,write_callback,close_callback); set_nonblocking(read_callback,write_callback,close_callback);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment