X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FTSO.h;h=2eca88a9616bcc640fd675be8bffad0cb0b6edfd;hb=e7c3f957fd36fd9f6369183b7a31e2a4a4c21b43;hp=8592cb8062469003f925f92a5c7fe7acafa7caed;hpb=8504635323bc4c2d7ade98771a4e281c2d56761c;p=ghc-hetmet.git diff --git a/ghc/includes/TSO.h b/ghc/includes/TSO.h index 8592cb8..2eca88a 100644 --- a/ghc/includes/TSO.h +++ b/ghc/includes/TSO.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $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 * @@ -85,7 +85,7 @@ typedef StgWord32 StgThreadID; */ 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; @@ -97,11 +97,11 @@ typedef struct { 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; /* @@ -126,7 +126,6 @@ typedef struct StgTSO_ { 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 @@ -136,6 +135,7 @@ typedef struct StgTSO_ { StgThreadID id; int saved_errno; struct StgMainThread_* main; + struct StgTRecHeader_ *trec; // STM transaction record #ifdef TICKY_TICKY // TICKY-specific stuff would go here. @@ -183,6 +183,8 @@ typedef struct StgTSO_ { 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