Update of /cvsroot/monetdb/sql/src/backends/monet5
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv27700
Modified Files:
Tag: Nov2008
merovingian.mx
Log Message:
Convert command listener loop into select block instead of non-block + sleep.
Now we are equal in CPU load to mserver5 in idle mode.
U merovingian.mx
Index: merovingian.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/merovingian.mx,v
retrieving revision 1.69.2.4
retrieving revision 1.69.2.5
diff -u -d -r1.69.2.4 -r1.69.2.5
--- merovingian.mx 28 Dec 2008 15:48:20 -0000 1.69.2.4
+++ merovingian.mx 28 Dec 2008 16:02:58 -0000 1.69.2.5
@@ -1417,6 +1417,8 @@
socklen_t addrlen;
struct sockaddr_storage peer_addr;
socklen_t peer_addr_len;
+ fd_set fds;
+ struct timeval tv;
int bcs;
struct sockaddr_in brdcst;
int c;
@@ -1535,11 +1537,21 @@
}
peer_addr_len = sizeof(struct sockaddr_storage);
+ FD_ZERO(&fds);
+ FD_SET(sock, &fds);
+ /* Wait up to 1 second. */
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+ nread = select(sock + 1, &fds, NULL, NULL, &tv);
+ if (nread == 0) {
+ /* nothing interesting has happened */
+ buf[0] = '\0';
+ continue;
+ }
nread = recvfrom(sock, buf, 512, MSG_DONTWAIT,
(struct sockaddr *)&peer_addr, &peer_addr_len);
if (nread == -1) {
buf[0] = '\0';
- MT_sleep_ms(1000); /* don't spin: this is the
clock-tick granularity */
continue; /* ignore failed request */
}
------------------------------------------------------------------------------
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins