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>
__archive__
Øyvind Harboe 2011-10-14 15:05:45 +02:00 committed by Øyvind Harboe
parent 2d4bdb9fe0
commit ea295bd694
1 changed files with 8 additions and 0 deletions

View File

@ -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 */