/* ----------------------------------------------------------------------------
- * $Id: Constants.h,v 1.27 2004/11/18 09:56:19 tharris Exp $
*
* (c) The GHC Team, 1998-2002
*
/* -----------------------------------------------------------------------------
Minimum closure sizes
- Here we define the minimum size for updatable closures. This must be at
- least 2, to allow for cons cells and linked indirections. All updates
- will be performed on closures of this size. For non-updatable closures
- the minimum size is 1 to allow for a forwarding pointer.
-
- Linked indirections are UPD_OLDGEN things: see Closures.h
-
- o MIN_UPD_SIZE doesn't apply to stack closures, static closures
- or non-updateable objects like PAPs or CONSTRs
- o MIN_UPD_SIZE is big enough to contain any of the following:
- o EVACUATED
- o BLACKHOLE
- o BLOCKING QUEUE
- o IND, IND_PERM, IND_OLDGEN and IND_OLDGEN_PERM
- (it need not be big enough for IND_STATIC - but it is)
- o MIN_NONUPD_SIZE doesn't apply to stack closures, static closures
- or updateable objects like APs, THUNKS or THUNK_SELECTORs
- o MIN_NONUPD_SIZE is big enough to contain any of the following:
- o EVACUATED
+ This is the minimum number of words in the payload of a
+ heap-allocated closure, so that the closure has enough room to be
+ overwritten with a forwarding pointer during garbage collection.
-------------------------------------------------------------------------- */
-#define MIN_UPD_SIZE 2
-#define MIN_NONUPD_SIZE 1
+#define MIN_PAYLOAD_SIZE 1
/* -----------------------------------------------------------------------------
Constants to do with specialised closure types.
#define LDV_LAST_MASK 0x00007FFF
#define LDV_STATE_CREATE 0x00000000
#define LDV_STATE_USE 0x40000000
-#endif // SIZEOF_VOID_P
+#endif /* SIZEOF_VOID_P */
/* -----------------------------------------------------------------------------
TSO related constants
#define BlockedOnGA 9
/* same as above but without sending a Fetch message */
#define BlockedOnGA_NoSend 10
-/* Only relevant for RTS_SUPPORTS_THREADS: */
+/* Only relevant for THREADED_RTS: */
#define BlockedOnCCall 11
#define BlockedOnCCall_NoUnblockExc 12
/* same as above but don't unblock async exceptions in resumeThread() */
#error RESERVED_STACK_WORDS may be wrong!
#endif
+/* -----------------------------------------------------------------------------
+ How often our context-switch timer ticks
+ -------------------------------------------------------------------------- */
+
+#define TICK_FREQUENCY 50 /* ticks per second */
+
#endif /* CONSTANTS_H */