drd: Delay deletion of memory access information of joined threads in order not
to miss any races caused by these threads.

To do: refine handling of pthread_once() again.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11926 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_main.c b/drd/drd_main.c
index 070fb5b..e282c3a 100644
--- a/drd/drd_main.c
+++ b/drd/drd_main.c
@@ -69,6 +69,7 @@
 static Bool DRD_(process_cmd_line_option)(Char* arg)
 {
    int check_stack_accesses   = -1;
+   int join_list_vol          = -1;
    int exclusive_threshold_ms = -1;
    int first_race_only        = -1;
    int report_signal_unlocked = -1;
@@ -92,6 +93,7 @@
    Char* trace_address        = 0;
 
    if      VG_BOOL_CLO(arg, "--check-stack-var",     check_stack_accesses) {}
+   else if VG_INT_CLO (arg, "--join-list-vol",       join_list_vol) {}
    else if VG_BOOL_CLO(arg, "--drd-stats",           s_print_stats) {}
    else if VG_BOOL_CLO(arg, "--first-race-only",     first_race_only) {}
    else if VG_BOOL_CLO(arg, "--free-is-write",       DRD_(g_free_is_write)) {}
@@ -134,6 +136,8 @@
    {
       DRD_(set_first_race_only)(first_race_only);
    }
+   if (join_list_vol != -1)
+      DRD_(thread_set_join_list_vol)(join_list_vol);
    if (report_signal_unlocked != -1)
    {
       DRD_(cond_set_report_signal_unlocked)(report_signal_unlocked);