SchedulerStatus status;
/* all GranSim/GUM init is done in startupHaskell; sets IAmMainThread! */
-#if defined(PROFILING)
startupHaskell(argc,argv,__stginit_ZCMain);
-#else
- startupHaskell(argc,argv,NULL);
-#endif
-
- /* Register this thread as a task, so we can get timing stats about it */
-#if defined(RTS_SUPPORTS_THREADS)
- threadIsTask(osThreadId());
-#endif
/* kick off the computation by creating the main thread with a pointer
to mainIO_closure representing the computation of the overall program;
# else /* !PAR && !GRAN */
/* ToDo: want to start with a larger stack size */
- rts_lock();
- status = rts_evalLazyIO((HaskellObj)mainIO_closure, NULL);
- rts_unlock();
+ {
+ void *cap = rts_lock();
+ cap = rts_evalLazyIO(cap,(HaskellObj)(void *)mainIO_closure, NULL);
+ status = rts_getSchedStatus(cap);
+ rts_unlock(cap);
+ }
# endif /* !PAR && !GRAN */