[project @ 2001-01-29 17:23:40 by simonmar]
[ghc-hetmet.git] / ghc / includes / Updates.h
index 77a18d1..9c17466 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Updates.h,v 1.21 2000/12/04 12:31:20 simonmar Exp $
+ * $Id: Updates.h,v 1.22 2001/01/29 17:23:41 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
    }
 #endif
 
+#define UPD_STATIC_IND(updclosure, heapptr)                    \
+   {                                                           \
+       const StgInfoTable *info;                               \
+       info = ((StgClosure *)updclosure)->header.info;         \
+        AWAKEN_STATIC_BQ(info,updclosure);                     \
+       updateWithStaticIndirection(info,                       \
+                                   (StgClosure *)updclosure,   \
+                                   (StgClosure *)heapptr);     \
+   }
+
 #if defined(PROFILING) || defined(TICKY_TICKY)
 #define UPD_PERM_IND(updclosure, heapptr)                      \
    {                                                           \
@@ -160,6 +170,11 @@ extern void awakenBlockedQueue(StgTSO *q);
           DO_AWAKEN_BQ(closure);                                        \
        }
 
+#define AWAKEN_STATIC_BQ(info,closure)                                 \
+       if (info == &stg_BLACKHOLE_BQ_STATIC_info) {                    \
+          DO_AWAKEN_BQ(closure);                                        \
+       }
+
 #endif /* GRAN || PAR */
 
 /* -------------------------------------------------------------------------