diff options
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 |
commit | ea295bd694250b077b780cfd506cf4d7f6fd1471 (patch) | |
tree | 9b1db1ee057c0677250bd163ec7dfa26f8783247 /src | |
parent | 2d4bdb9fe089b5fe169639cecf32fbe38dca1a16 (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')
-rw-r--r-- | src/server/server.c | 8 |
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 */ |