/* -----------------------------------------------------------------------------
- * $Id: TSO.h,v 1.37 2004/11/08 12:26:57 simonmar Exp $
+ * $Id: TSO.h,v 1.41 2005/02/10 13:02:05 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
*/
typedef unsigned int StgThreadReturnCode;
-#if defined(mingw32_TARGET_OS)
+#if defined(mingw32_HOST_OS)
/* results from an async I/O request + it's ID. */
typedef struct {
unsigned int reqID;
typedef union {
StgClosure *closure;
struct StgTSO_ *tso;
- int fd;
-#if defined(mingw32_TARGET_OS)
+ StgInt fd; // StgInt instead of int, so that it's the same size as the ptrs
+#if defined(mingw32_HOST_OS)
StgAsyncIOResult* async_result;
#endif
- unsigned int target;
+ StgWord target;
} StgTSOBlockInfo;
/*
StgHeader header;
struct StgTSO_* link; // Links threads onto blocking queues */
- StgMutClosure * mut_link; // TSO's are mutable of course! */
struct StgTSO_* global_link; // Links all threads together */
StgWord16 what_next; // Values defined in Constants.h
StgThreadID id;
int saved_errno;
struct StgMainThread_* main;
+ struct StgTRecHeader_ *trec; // STM transaction record
#ifdef TICKY_TICKY
// TICKY-specific stuff would go here.
BlockedOnBlackHole the BLACKHOLE_BQ the BLACKHOLE_BQ's queue
BlockedOnMVar the MVAR the MVAR's queue
+
+ BlockedOnSTM END_TSO_QUEUE STM wait queue(s)
BlockedOnException the TSO TSO->blocked_exception