add noDuplicate#
[ghc-hetmet.git] / rts / Schedule.c
index a7a0f33..e328b5b 100644 (file)
@@ -643,7 +643,7 @@ run_thread:
     t->saved_errno = errno;
 #if mingw32_HOST_OS
     // Similarly for Windows error code
-    SetLastError(t->saved_winerror);
+    t->saved_winerror = GetLastError();
 #endif
 
 #if defined(THREADED_RTS)
@@ -2195,6 +2195,10 @@ forkProcess(HsStablePtr *entry
        cap->returning_tasks_tl = NULL;
 #endif
 
+        // On Unix, all timers are reset in the child, so we need to start
+        // the timer again.
+        startTimer();
+
        cap = rts_evalStableIO(cap, entry, NULL);  // run the action
        rts_checkSchedStatus("forkProcess",cap);