X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=includes%2FConstants.h;h=66b8fe79d81c0185cfbc3a5bd1d8d93caeea611c;hp=4f3c35b7448fe814facc595cc6bc31f47ec45212;hb=8a2809c29de9f23eba7ca682b48390033a9d40f6;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/includes/Constants.h b/includes/Constants.h index 4f3c35b..66b8fe7 100644 --- a/includes/Constants.h +++ b/includes/Constants.h @@ -76,16 +76,6 @@ #define MAX_LONG_REG 1 /* ----------------------------------------------------------------------------- - * Maximum number of constructors in a data type for direct-returns. - * - * NB. There are various places that assume the value of this - * constant, such as the polymorphic return frames for updates - * (stg_upd_frame_info) and catch frames (stg_catch_frame_info). - * -------------------------------------------------------------------------- */ - -#define MAX_VECTORED_RTN 8 - -/* ----------------------------------------------------------------------------- Semi-Tagging constants Old Comments about this stuff: @@ -230,6 +220,39 @@ #define ThreadBlocked 4 #define ThreadFinished 5 +/* + * Flags for the tso->flags field. + * + * The TSO_DIRTY flag indicates that this TSO's stack should be + * scanned during garbage collection. The link field of a TSO is + * always scanned, so we don't have to dirty a TSO just for linking + * it on a different list. + * + * TSO_DIRTY is set by + * - schedule(), just before running a thread, + * - raiseAsync(), because it modifies a thread's stack + * - resumeThread(), just before running the thread again + * and unset by the garbage collector (only). + */ +#define TSO_DIRTY 1 + +/* + * TSO_LOCKED is set when a TSO is locked to a particular Capability. + */ +#define TSO_LOCKED 2 + +/* + * TSO_BLOCKEX: the TSO is blocking exceptions + * + * TSO_INTERRUPTIBLE: the TSO can be interrupted if it blocks + * interruptibly (eg. with BlockedOnMVar). + * + * TSO_STOPPED_ON_BREAKPOINT: the thread is currently stopped in a breakpoint + */ +#define TSO_BLOCKEX 4 +#define TSO_INTERRUPTIBLE 8 +#define TSO_STOPPED_ON_BREAKPOINT 16 + /* ----------------------------------------------------------------------------- RET_DYN stack frames -------------------------------------------------------------------------- */