Fix another deadlock Hal spotted and that mysteriously didn't affect FreeBSD.
[privoxy.git] / jcc.c
diff --git a/jcc.c b/jcc.c
index 30e146b..24e4522 100644 (file)
--- a/jcc.c
+++ b/jcc.c
@@ -1,4 +1,4 @@
-const char jcc_rcs[] = "$Id: jcc.c,v 1.155 2007/10/23 20:12:45 fabiankeil Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.156 2007/11/01 18:20:58 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/jcc.c,v $
@@ -33,6 +33,10 @@ const char jcc_rcs[] = "$Id: jcc.c,v 1.155 2007/10/23 20:12:45 fabiankeil Exp $"
  *
  * Revisions   :
  *    $Log: jcc.c,v $
+ *    Revision 1.156  2007/11/01 18:20:58  fabiankeil
+ *    Initialize log module after initializing mutexes, future
+ *    deadlocks in that code should now work cross-platform.
+ *
  *    Revision 1.155  2007/10/23 20:12:45  fabiankeil
  *    Fix first CSUCCEED line to end in \r\n as required by RFC1945.
  *    Reported by Bert van Leeuwen in BR#1818808.
@@ -3103,6 +3107,7 @@ int main(int argc, const char *argv[])
    files->next = NULL;
    clients->next = NULL;
 
+   /* XXX: factor out initialising after the next stable release. */
 #ifdef AMIGA
    InitAmiga();
 #elif defined(_WIN32)
@@ -3118,6 +3123,15 @@ int main(int argc, const char *argv[])
    random_seed = (unsigned int)time(NULL);
 #ifdef HAVE_RANDOM
    srandom(random_seed);
+#elif defined (_WIN32)
+   /*
+    * See pick_from_range() in miscutil.c for details.
+    */
+   log_error(LOG_LEVEL_INFO,
+      "No thread-safe PRNG implemented for your platform. "
+      "Using weak \'randomization\' factor which will "
+      "limit the already questionable usefulness of "
+      "header-time-randomizing actions (disabled by default).");
 #else
    srand(random_seed);
 #endif /* ifdef HAVE_RANDOM */