- openocd_sleep_prelude();
- kept_alive();
-
- /* Only while we're sleeping we'll let others run */
- retval = socket_select(fd_max + 1, &read_fds, NULL, NULL, &tv);
- openocd_sleep_postlude();
+ struct timeval tv;
+ tv.tv_sec = 0;
+ if (poll)
+ {
+ /* we're just polling this iteration, this is faster on embedded
+ * hosts */
+ tv.tv_usec = 0;
+ retval = socket_select(fd_max + 1, &read_fds, NULL, NULL, &tv);
+ } else
+ {
+ /* Every 100ms */
+ tv.tv_usec = 100000;
+ /* Only while we're sleeping we'll let others run */
+ openocd_sleep_prelude();
+ kept_alive();
+ retval = socket_select(fd_max + 1, &read_fds, NULL, NULL, &tv);
+ openocd_sleep_postlude();
+ }