/* -----------------------------------------------------------------------------
- * $Id: StgMiscClosures.hc,v 1.6 1999/01/18 15:21:39 simonm Exp $
+ * $Id: StgMiscClosures.hc,v 1.7 1999/01/21 10:31:51 simonm Exp $
*
* Entry code for various built-in closure types.
*
STGFUN(CAF_ENTERED_entry)
{
FB_
- TICK_ENT_CAF_ENTERED(Node); /* tick */
-
R1.p = (P_) ((StgCAF*)R1.p)->value; /* just a fancy indirection */
TICK_ENT_VIA_NODE();
JMP_(GET_ENTRY(R1.cl));
STGFUN(BLACKHOLE_entry)
{
FB_
+ TICK_ENT_BH();
+
/* Change the BLACKHOLE into a BLACKHOLE_BQ */
((StgBlockingQueue *)R1.p)->header.info = &BLACKHOLE_BQ_info;
/* Put ourselves on the blocking queue for this black hole */
STGFUN(BLACKHOLE_BQ_entry)
{
FB_
+ TICK_ENT_BH();
+
/* Put ourselves on the blocking queue for this black hole */
CurrentTSO->link = ((StgBlockingQueue *)R1.p)->blocking_queue;
((StgBlockingQueue *)R1.p)->blocking_queue = CurrentTSO;
STGFUN(CAF_BLACKHOLE_entry)
{
FB_
+ TICK_ENT_BH();
+
/* Change the BLACKHOLE into a BLACKHOLE_BQ */
((StgBlockingQueue *)R1.p)->header.info = &BLACKHOLE_BQ_info;
/* Put ourselves on the blocking queue for this black hole */