Commit 24c76dda authored by Mark Andrews's avatar Mark Andrews
Browse files

Merge branch 'master' of repo.isc.org:/proj/git/prod/bind9

parents 9e84a747 8b47a840
3310. [test] Increase table size for mutex profiling. [RT #28809]
3309. [bug] resolver.c:fctx_finddone() was not threadsafe.
[RT #27995]
3308. [placeholder]
3307. [bug] Add missing ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS.
......@@ -7,7 +12,8 @@
3305. [func] Add wire format lookup method to sdb. [RT #28563]
3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps. [RT #28571]
3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps.
[RT #28571]
3303. [bug] named could die when reloading. [RT #28606]
......
# This file must follow /bin/sh rules. It is imported directly via
# configure.
#
SRCID="( 2012/04/24 00:15:00 UTC )"
SRCID="( 2012/04/26 00:15:00 UTC )"
......@@ -2166,7 +2166,6 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) {
isc_boolean_t want_try = ISC_FALSE;
isc_boolean_t want_done = ISC_FALSE;
isc_boolean_t bucket_empty = ISC_FALSE;
isc_boolean_t destroy = ISC_FALSE;
unsigned int bucketnum;
find = event->ev_sender;
......@@ -2205,17 +2204,12 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) {
}
} else if (SHUTTINGDOWN(fctx) && fctx->pending == 0 &&
fctx->nqueries == 0 && ISC_LIST_EMPTY(fctx->validators)) {
/*
* Note that we had to wait until we had the lock before
* looking at fctx->references.
*/
if (fctx->references == 0)
destroy = ISC_TRUE;
bucket_empty = fctx_destroy(fctx);
}
UNLOCK(&res->buckets[bucketnum].lock);
if (destroy)
bucket_empty = fctx_destroy(fctx);
isc_event_free(&event);
dns_adb_destroyfind(&find);
......
/*
* Copyright (C) 2004, 2005, 2007, 2008, 2011 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007, 2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
......@@ -78,7 +78,7 @@ struct isc_mutexstats {
};
#ifndef ISC_MUTEX_PROFTABLESIZE
#define ISC_MUTEX_PROFTABLESIZE (16 * 1024)
#define ISC_MUTEX_PROFTABLESIZE (1024 * 1024)
#endif
static isc_mutexstats_t stats[ISC_MUTEX_PROFTABLESIZE];
static int stats_next = 0;
......@@ -200,24 +200,24 @@ isc_mutex_statsprofile(FILE *fp) {
fprintf(fp, "Mutex stats (in us)\n");
for (i = 0; i < stats_next; i++) {
fprintf(fp, "%-12s %4d: %10u %lu.%06lu %lu.%06lu\n",
fprintf(fp, "%-12s %4d: %10u %lu.%06lu %lu.%06lu %5d\n",
stats[i].file, stats[i].line, stats[i].count,
stats[i].locked_total.tv_sec,
stats[i].locked_total.tv_usec,
stats[i].wait_total.tv_sec,
stats[i].wait_total.tv_usec
);
stats[i].wait_total.tv_usec,
i);
for (j = 0; j < ISC_MUTEX_MAX_LOCKERS; j++) {
locker = &stats[i].lockers[j];
if (locker->file == NULL)
continue;
fprintf(fp, " %-11s %4d: %10u %lu.%06lu %lu.%06lu\n",
fprintf(fp, " %-11s %4d: %10u %lu.%06lu %lu.%06lu %5d\n",
locker->file, locker->line, locker->count,
locker->locked_total.tv_sec,
locker->locked_total.tv_usec,
locker->wait_total.tv_sec,
locker->wait_total.tv_usec
);
locker->wait_total.tv_usec,
i);
}
}
}
......
......@@ -2635,7 +2635,7 @@
./lib/isc/pthreads/include/isc/mutex.h C 1998,1999,2000,2001,2002,2004,2005,2007
./lib/isc/pthreads/include/isc/once.h C 1999,2000,2001,2004,2005,2007
./lib/isc/pthreads/include/isc/thread.h C 1998,1999,2000,2001,2004,2005,2007
./lib/isc/pthreads/mutex.c C 2000,2001,2002,2004,2005,2007,2008,2011
./lib/isc/pthreads/mutex.c C 2000,2001,2002,2004,2005,2007,2008,2011,2012
./lib/isc/pthreads/thread.c C 2000,2001,2003,2004,2005,2007
./lib/isc/quota.c C 2000,2001,2004,2005,2007
./lib/isc/radix.c C 2007,2008,2009,2011,2012
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment