helper: improve windows gdb pipe performance
authorSpencer Oliver <spen@spen-soft.co.uk>
Wed, 12 Dec 2012 15:42:01 +0000 (15:42 +0000)
committerSpencer Oliver <spen@spen-soft.co.uk>
Mon, 24 Dec 2012 11:01:03 +0000 (11:01 +0000)
Reducing the select and MsgWaitForMultipleObjects timeouts to 1ms makes
a 2-300+% increase in the step time of gdb when using pipes under windows OS.

Change-Id: Id7e52cfb2b206347a9caea61672885a3e2b186de
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/1050
Tested-by: jenkins
src/helper/replacements.c

index 583e6162a862bc606104cf433e72da68310e029c..0ba98a488e6ea43bb4fcabed1cdc8101ec8a9112 100644 (file)
@@ -206,10 +206,11 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct time
                        aexcept = sock_except;
 
                        tvslice.tv_sec = 0;
-                       tvslice.tv_usec = 100000;
+                       tvslice.tv_usec = 1000;
 
                        retcode = select(sock_max_fd + 1, &aread, &awrite, &aexcept, &tvslice);
                }
+
                if (n_handles > 0) {
                        /* check handles */
                        DWORD wret;
@@ -217,7 +218,7 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct time
                        wret = MsgWaitForMultipleObjects(n_handles,
                                        handles,
                                        FALSE,
-                                       retcode > 0 ? 0 : 100,
+                                       retcode > 0 ? 0 : 1,
                                        QS_ALLEVENTS);
 
                        if (wret == WAIT_TIMEOUT) {