if (buckets == 0)
buckets = 1;
- /* Check for overflow. */
- if (buckets && SIZE_MAX / buckets < sizeof(tally->counts[0]))
+ /* Overly cautious check for overflow. */
+ if (sizeof(*tally) * buckets / sizeof(*tally) != buckets)
return NULL;
tally = malloc(sizeof(*tally) + sizeof(tally->counts[0])*(buckets-1));
if (tally) {
static int test_pid;
/* Encapsulate the pthread code in a conditional. In the absence of
- libpthread the code does nothing */
-#if HAVE_LIBPTHREAD
+ libpthread the code does nothing.
+
+ If you have multiple threads calling ok() etc. at the same time you would
+ need this, but in that case your test numbers will be random and I'm not
+ sure it makes sense. --RR
+*/
+#ifdef WANT_PTHREAD
#include <pthread.h>
static pthread_mutex_t M = PTHREAD_MUTEX_INITIALIZER;
# define LOCK pthread_mutex_lock(&M)