diff options
Diffstat (limited to 'ghc/includes/Updates.h')
-rw-r--r-- | ghc/includes/Updates.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ghc/includes/Updates.h b/ghc/includes/Updates.h index 77a18d1573..9c174660ed 100644 --- a/ghc/includes/Updates.h +++ b/ghc/includes/Updates.h @@ -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 * @@ -61,6 +61,16 @@ } #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 */ /* ------------------------------------------------------------------------- |