+# if defined(i386_TARGET_ARCH)
+ if (entersFromC) { /* more than one thread has entered the Haskell world
+ via C (and stable pointers) */
+ /* Don't squeeze C stack */
+ if (required_thread_count <= 0) {
+ longjmp(scheduler_loop, -1);
+ } else {
+ SchedLoop(required_thread_count <= 0 ? -1 : 1);
+ longjmp(scheduler_loop, -1);
+ }
+ } else {
+ longjmp(scheduler_loop, required_thread_count == 0 ? -1 : 1);
+ }
+# else