* ResXResourceReader.cs (load_data): Make exception more informative.
[mono.git] / libgc / pthread_stop_world.c
index 001a9e05c5c158b42ed6073fc8978df9df96ea89..06e919b28482d8d464eebe7d833af7d583134c7c 100644 (file)
@@ -366,9 +366,11 @@ static void pthread_stop_world()
          }
       }
     for (i = 0; i < n_live_threads; i++) {
-         if (0 != (code = sem_wait(&GC_suspend_ack_sem))) {
-             GC_err_printf1("Sem_wait returned %ld\n", (unsigned long)code);
-             ABORT("sem_wait for handler failed");
+         while (0 != (code = sem_wait(&GC_suspend_ack_sem))) {
+             if (errno != EINTR) {
+                GC_err_printf1("Sem_wait returned %ld\n", (unsigned long)code);
+                ABORT("sem_wait for handler failed");
+             }
          }
     }
     #if DEBUG_THREADS