summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
54fcddb)
- fix a mixup in Capability.c regarding signals: signals_pending() is not
used in THREADED_RTS
- some cleanups and warning removal while I'm here
# Initialise and check sanity.
# Initialise and check sanity.
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.5], [glasgow-haskell-bugs@haskell.org], [ghc])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.5.20060117], [glasgow-haskell-bugs@haskell.org], [ghc])
AC_CONFIG_SRCDIR([ghc.spec.in])
# duplicate from ../configure.ac
AC_CONFIG_SRCDIR([ghc.spec.in])
# duplicate from ../configure.ac
#define doNothing() do { } while (0)
#define doNothing() do { } while (0)
+#ifdef SMP
+#define USED_IF_SMP
+#define USED_IF_NOT_SMP STG_UNUSED
+#else
+#define USED_IF_SMP STG_UNUSED
+#define USED_IF_NOT_SMP
+#endif
+
+#ifdef DEBUG
+#define USED_IF_DEBUG
+#define USED_IF_NOT_DEBUG STG_UNUSED
+#else
+#define USED_IF_DEBUG STG_UNUSED
+#define USED_IF_NOT_DEBUG
+#endif
+
+#ifdef THREADED_RTS
+#define USED_IF_THREADS
+#define USED_IF_NOT_THREADS STG_UNUSED
+#else
+#define USED_IF_THREADS STG_UNUSED
+#define USED_IF_NOT_THREADS
+#endif
+
/* -----------------------------------------------------------------------------
Include everything STG-ish
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Include everything STG-ish
-------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------
*
/* ---------------------------------------------------------------------------
*
- * (c) The GHC Team, 2003-2005
+ * (c) The GHC Team, 2003-2006
// locking, so we don't do that.
Capability *last_free_capability;
// locking, so we don't do that.
Capability *last_free_capability;
-#ifdef SMP
-#define UNUSED_IF_NOT_SMP
-#else
-#define UNUSED_IF_NOT_SMP STG_UNUSED
-#endif
-
-#ifdef RTS_USER_SIGNALS
-#define UNUSED_IF_NOT_THREADS
-#else
-#define UNUSED_IF_NOT_THREADS STG_UNUSED
-#endif
-
-
+#if defined(THREADED_RTS)
STATIC_INLINE rtsBool
globalWorkToDo (void)
{
return blackholes_need_checking
|| interrupted
STATIC_INLINE rtsBool
globalWorkToDo (void)
{
return blackholes_need_checking
|| interrupted
-#if defined(RTS_USER_SIGNALS)
- || signals_pending()
-#endif
#if defined(THREADED_RTS)
STATIC_INLINE rtsBool
#if defined(THREADED_RTS)
STATIC_INLINE rtsBool
#if defined(THREADED_RTS)
STATIC_INLINE void
#if defined(THREADED_RTS)
STATIC_INLINE void
-giveCapabilityToTask (Capability *cap, Task *task)
+giveCapabilityToTask (Capability *cap USED_IF_DEBUG, Task *task)
{
ASSERT_LOCK_HELD(&cap->lock);
ASSERT(task->cap == cap);
{
ASSERT_LOCK_HELD(&cap->lock);
ASSERT(task->cap == cap);
-releaseCapability (Capability* cap UNUSED_IF_NOT_THREADS)
+releaseCapability (Capability* cap USED_IF_THREADS)
{
ACQUIRE_LOCK(&cap->lock);
releaseCapability_(cap);
{
ACQUIRE_LOCK(&cap->lock);
releaseCapability_(cap);
-releaseCapabilityAndQueueWorker (Capability* cap UNUSED_IF_NOT_THREADS)
+releaseCapabilityAndQueueWorker (Capability* cap USED_IF_THREADS)
*
* ------------------------------------------------------------------------- */
void
*
* ------------------------------------------------------------------------- */
void
-waitForReturnCapability (Capability **pCap,
- Task *task UNUSED_IF_NOT_THREADS)
+waitForReturnCapability (Capability **pCap, Task *task)
{
#if !defined(THREADED_RTS)
{
#if !defined(THREADED_RTS)
# define STATIC_INLINE static
#endif
# define STATIC_INLINE static
#endif
-#ifdef THREADED_RTS
-#define USED_WHEN_THREADED_RTS
-#define USED_WHEN_NON_THREADED_RTS STG_UNUSED
-#else
-#define USED_WHEN_THREADED_RTS STG_UNUSED
-#define USED_WHEN_NON_THREADED_RTS
-#endif
-
-#ifdef SMP
-#define USED_WHEN_SMP
-#else
-#define USED_WHEN_SMP STG_UNUSED
-#endif
-
/* -----------------------------------------------------------------------------
* Global variables
* -------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
* Global variables
* -------------------------------------------------------------------------- */
-schedulePushWork(Capability *cap USED_WHEN_SMP,
- Task *task USED_WHEN_SMP)
+schedulePushWork(Capability *cap USED_IF_SMP,
+ Task *task USED_IF_SMP)
{
Capability *free_caps[n_capabilities], *cap0;
nat i, n_free_caps;
{
Capability *free_caps[n_capabilities], *cap0;
nat i, n_free_caps;
* ------------------------------------------------------------------------- */
static void
* ------------------------------------------------------------------------- */
static void
-scheduleCheckBlockedThreads(Capability *cap USED_WHEN_NON_THREADED_RTS)
+scheduleCheckBlockedThreads(Capability *cap USED_IF_NOT_THREADS)
{
#if !defined(THREADED_RTS)
//
{
#if !defined(THREADED_RTS)
//
* -------------------------------------------------------------------------- */
static void
* -------------------------------------------------------------------------- */
static void
-scheduleDoGC( Capability *cap, Task *task USED_WHEN_SMP, rtsBool force_major )
+scheduleDoGC( Capability *cap, Task *task USED_IF_SMP, rtsBool force_major )
* ------------------------------------------------------------------------- */
StgBool
* ------------------------------------------------------------------------- */
StgBool
-isThreadBound(StgTSO* tso USED_WHEN_THREADED_RTS)
+isThreadBound(StgTSO* tso USED_IF_THREADS)
{
#if defined(THREADED_RTS)
return (tso->bound != NULL);
{
#if defined(THREADED_RTS)
return (tso->bound != NULL);
#define signals_pending() (next_pending_handler != pending_handler_buf)
void startSignalHandlers(Capability *cap);
#define signals_pending() (next_pending_handler != pending_handler_buf)
void startSignalHandlers(Capability *cap);
#endif
extern StgInt *signal_handlers;
#endif
extern StgInt *signal_handlers;