typedef unsigned int StgThreadReturnCode;
#if defined(mingw32_HOST_OS)
-/* results from an async I/O request + it's ID. */
+/* results from an async I/O request + its request ID. */
typedef struct {
unsigned int reqID;
int len;
struct StgTSO_ *tso;
StgInt fd; /* StgInt instead of int, so that it's the same size as the ptrs */
#if defined(mingw32_HOST_OS)
- StgAsyncIOResult* async_result;
+ StgAsyncIOResult *async_result;
#endif
StgWord target;
} StgTSOBlockInfo;
struct StgTSO_* blocked_exceptions;
StgThreadID id;
int saved_errno;
- struct StgMainThread_* main;
+ struct Task_* bound; // non-NULL for a bound thread
struct StgTRecHeader_ *trec; /* STM transaction record */
#ifdef TICKY_TICKY
/* this is the NIL ptr for a TSO queue (e.g. runnable queue) */
+#if IN_STG_CODE
+#define END_TSO_QUEUE (stg_END_TSO_QUEUE_closure)
+#else
#define END_TSO_QUEUE ((StgTSO *)(void*)&stg_END_TSO_QUEUE_closure)
+#endif
#if defined(PAR) || defined(GRAN)
/* this is the NIL ptr for a blocking queue */