/* -----------------------------------------------------------------------------
- * $Id: Schedule.c,v 1.18 1999/03/17 13:19:24 simonm Exp $
+ * $Id: Schedule.c,v 1.22 1999/06/25 09:17:58 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
StgTSO *dest;
if (tso->stack_size >= tso->max_stack_size) {
-#ifdef 0
+#if 0
/* If we're debugging, just print out the top of the stack */
printStackChunk(tso->sp, stg_min(tso->stack+tso->stack_size,
tso->sp+64));
#endif
+#ifdef INTERPRETER
+ fprintf(stderr, "fatal: stack overflow in Hugs; aborting\n" );
+ exit(1);
+#else
/* Send this thread the StackOverflow exception */
raiseAsync(tso, (StgClosure *)&stackOverflow_closure);
+#endif
return tso;
}
* handler in this frame.
*/
ap = (StgAP_UPD *)allocate(sizeofW(StgPAP) + 1);
- TICK_ALLOC_THK(2,0);
+ TICK_ALLOC_UPD_PAP(2,0);
SET_HDR(ap,&PAP_info,cf->header.prof.ccs);
ap->n_args = 1;
* fun field.
*/
ap = (StgAP_UPD *)allocate(AP_sizeW(words));
- TICK_ALLOC_THK(words+1,0);
ASSERT(words >= 0);
case UPDATE_FRAME:
{
SET_HDR(ap,&AP_UPD_info,su->header.prof.ccs /* ToDo */);
+ TICK_ALLOC_UP_THK(words+1,0);
IF_DEBUG(scheduler,
fprintf(stderr, "Updating ");
* layout's the same.
*/
SET_HDR(ap,&PAP_info,su->header.prof.ccs /* ToDo */);
+ TICK_ALLOC_UPD_PAP(words+1,0);
/* now build o = FUN(catch,ap,handler) */
o = (StgClosure *)allocate(sizeofW(StgClosure)+2);
- TICK_ALLOC_THK(2,0);
+ TICK_ALLOC_FUN(2,0);
SET_HDR(o,&catch_info,su->header.prof.ccs /* ToDo */);
o->payload[0] = (StgClosure *)ap;
o->payload[1] = cf->handler;
StgClosure* o;
SET_HDR(ap,&PAP_info,su->header.prof.ccs /* ToDo */);
+ TICK_ALLOC_UPD_PAP(words+1,0);
/* now build o = FUN(seq,ap) */
o = (StgClosure *)allocate(sizeofW(StgClosure)+1);
- TICK_ALLOC_THK(1,0);
+ TICK_ALLOC_SE_THK(1,0);
SET_HDR(o,&seq_info,su->header.prof.ccs /* ToDo */);
payloadCPtr(o,0) = (StgClosure *)ap;