aboutsummaryrefslogtreecommitdiff
path: root/src/server/server.c
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2011-10-14 15:05:45 +0200
committerØyvind Harboe <oyvindharboe@gmail.com>2011-10-17 12:32:11 +0000
commitea295bd694250b077b780cfd506cf4d7f6fd1471 (patch)
tree9b1db1ee057c0677250bd163ec7dfa26f8783247 /src/server/server.c
parent2d4bdb9fe089b5fe169639cecf32fbe38dca1a16 (diff)
target: DCC / target message backoff algorithm
by immediately polling again when we have received a message from the target instead of waiting 100ms, we can hope for much better performance. More than 100x? :-) Change-Id: Ieaf0c6c8b6e5addc482895670ffbf9a743e07a29 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/27 Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com> Tested-by: Øyvind Harboe <oyvindharboe@gmail.com>
Diffstat (limited to 'src/server/server.c')
-rw-r--r--src/server/server.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/server.c b/src/server/server.c
index c70a5222..84ec1ac9 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -29,6 +29,7 @@
#include "server.h"
#include <target/target.h>
+#include <target/target_request.h>
#include "openocd.h"
#include "tcl_server.h"
#include "telnet_server.h"
@@ -443,6 +444,13 @@ int server_loop(struct command_context *command_context)
poll_ok = true;
}
+ /* This is a simple back-off algorithm where we immediately
+ * re-poll if we did something this time around.
+ *
+ * This greatly improves performance of DCC.
+ */
+ poll_ok = poll_ok || target_got_message();
+
for (service = services; service; service = service->next)
{
/* handle new connections on listeners */