[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-bugs] #18365 [Core Tor/Tor]: Fined-grain timer implementation to support per-connection or per-circuit timers



#18365: Fined-grain timer implementation to support per-connection or per-circuit
timers
-------------------------------------------------+-------------------------
 Reporter:  nickm                                |          Owner:  nickm
     Type:  enhancement                          |         Status:
 Priority:  Medium                               |  needs_revision
Component:  Core Tor/Tor                         |      Milestone:  Tor:
 Severity:  Normal                               |  0.2.9.x-final
 Keywords:  performance, backend,                |        Version:
  TorCoreTeam201604                              |     Resolution:
Parent ID:                                       |  Actual Points:  medium
 Reviewer:                                       |         Points:  medium
                                                 |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by cypherpunks):

 When running the timers test under Valgrind it ends up in one of the
 warning states. Valgrind then starts reporting there are memory leaks
 because these states return from main without cleaning up. See the
 following patch for a possible fix.
 {{{
 diff --git a/src/test/test-timers.c b/src/test/test-timers.c
 index 2896e49..35906a1 100644
 --- a/src/test/test-timers.c
 +++ b/src/test/test-timers.c
 @@ -59,6 +59,7 @@ main(int argc, char **argv)
    timers_initialize();

    int i;
 +  int ret;
    struct timeval now;
    tor_gettimeofday(&now);
    for (i = 0; i < N_TIMERS; ++i) {
 @@ -109,13 +110,14 @@ main(int argc, char **argv)
    if (mean_diff > 500*1000 || stddev > 500*1000) {
      printf("Either your system is under ridiculous load, or the "
             "timer backend is broken.\n");
 -    return 1;
 +    ret = 1;
    } else if (mean_diff > 2000 || stddev > 2000) {
      printf("Either your system is a bit slow or the "
             "timer backend is odd.\n");
 -    return 0;
 +    ret = 0;
    } else {
      printf("Looks good enough.\n");
 +    ret = 0;
    }

    timer_free(NULL);
 @@ -124,5 +126,5 @@ main(int argc, char **argv)
      timer_free(timers[i]);
    }
    timers_shutdown();
 -  return 0;
 +  return ret;
  }
 }}}
 One nitpick are the magic values in the if statements. Maybe use
 descriptive defines for these?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/18365#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs