After the change in r6413, CLG_(run_thread) is called a
lot more often, increasing the polling overhead to check
for a callgrind command file (created by callgrind_control
for controlling a callgrind run in an interactive way).
This reduces the calls to only be done every 5000 BBs,
which gives a similar polling frequency as before.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6414
Bool is_running,
ULong blocks_done )
{
+ static ULong last_blocks_done = 0;
+
if (0)
VG_(printf)("%d %c %llu\n",
(Int)tid, is_running ? 'R' : 's', blocks_done);
- /* Simply call onwards to CLG_(run_thread). Maybe this can be
- simplified later? */
- if (is_running)
- CLG_(run_thread)( tid );
+
+ if (!is_running) return;
+
+ /* throttle calls to CLG_(run_thread) by number of BBs executed */
+ if (blocks_done - last_blocks_done < 5000) return;
+ last_blocks_done = blocks_done;
+
+ CLG_(run_thread)( tid );
}
static