[project @ 1997-10-05 20:38:58 by sof]
authorsof <unknown>
Sun, 5 Oct 1997 20:38:58 +0000 (20:38 +0000)
committersof <unknown>
Sun, 5 Oct 1997 20:38:58 +0000 (20:38 +0000)
Added hack for turning off heap check context switches if more than one thread has entered Haskell via a stable ptr (in C). x86 only

ghc/includes/Threads.lh

index f0f88a5..48e10ef 100644 (file)
@@ -45,12 +45,20 @@ extern FILE *qp_file;
 #endif
 
 extern I_ context_switch;                      /* Flag set by signal handler */
+#if defined(i386_TARGET_ARCH)
+extern I_ entersFromC;                         /* Counter set by enterStablePtr
+                                                  (see comments in c-as-asm/StablePtrOps.lc) */
+#endif
 
 #define CS_MAX_FREQUENCY 100                   /* context switches per second */
 #define CS_MIN_MILLISECS (1000/CS_MAX_FREQUENCY)/* milliseconds per slice */
 
 #ifdef __STG_GCC_REGS__
-#define OR_CONTEXT_SWITCH || context_switch
+# if defined(i386_TARGET_ARCH)
+# define OR_CONTEXT_SWITCH || (context_switch && !entersFromC)
+# else
+# define OR_CONTEXT_SWITCH || context_switch
+# endif
 #else
 #define OR_CONTEXT_SWITCH /* in miniInterpret */
 #endif