Просмотр исходного кода

there was no need to die when we failed to spawn a cpuworker.
it handles it fine if we decide not to die.


svn:r5114

Roger Dingledine 18 лет назад
Родитель
Сommit
e286c4267e
1 измененных файлов с 4 добавлено и 5 удалено
  1. 4 5
      src/or/cpuworker.c

+ 4 - 5
src/or/cpuworker.c

@@ -293,7 +293,7 @@ cpuworker_main(void *data)
   return 0; /* windows wants this function to return an int */
 }
 
-/** Launch a new cpuworker.
+/** Launch a new cpuworker. Return 0 if we're happy, -1 if we failed.
  */
 static int
 spawn_cpuworker(void)
@@ -305,10 +305,9 @@ spawn_cpuworker(void)
 
   fdarray = tor_malloc(sizeof(int)*2);
   if ((err = tor_socketpair(AF_UNIX, SOCK_STREAM, 0, fdarray)) < 0) {
-    log(LOG_ERR, "Couldn't construct socketpair: %s", tor_socket_strerror(-err));
-    tor_cleanup();
+    log(LOG_WARN, "Couldn't construct socketpair: %s", tor_socket_strerror(-err));
     tor_free(fdarray);
-    exit(1);
+    return -1;
   }
 
   fd = fdarray[0];
@@ -354,7 +353,7 @@ spawn_enough_cpuworkers(void)
 
   while (num_cpuworkers < num_cpuworkers_needed) {
     if (spawn_cpuworker() < 0) {
-      log_fn(LOG_WARN,"spawn failed!");
+      log_fn(LOG_WARN,"Spawn failed. Will try again later.");
       return;
     }
     num_cpuworkers++;