| ... |
... |
@@ -221,14 +221,41 @@ Thread and scheduling events |
|
221
|
221
|
* 11: BlockedOnDelay
|
|
222
|
222
|
* 12: BlockedOnSTM
|
|
223
|
223
|
* 13: BlockedOnDoProc
|
|
224
|
|
- * 16: BlockedOnMsgThrowTo
|
|
|
224
|
+ * 14--17: unused
|
|
|
225
|
+ * 18: BlockedOnMsgThrowTo
|
|
|
226
|
+ * 19: unused
|
|
225
|
227
|
* 20: BlockedOnMVarRead
|
|
226
|
228
|
|
|
227
|
229
|
:field ThreadId: thread id of thread being blocked on (only for some status
|
|
228
|
230
|
values)
|
|
229
|
231
|
|
|
230
|
232
|
The indicated thread has stopped running for the reason given by ``status``.
|
|
231
|
|
-
|
|
|
233
|
+
|
|
|
234
|
+ Historically, the GHC-internal status codes for the reasons why threads are
|
|
|
235
|
+ blocked were used more-or-less directly as the status codes emitted into the
|
|
|
236
|
+ eventlog. This is now recognised as a mistake and the GHC internal codes and
|
|
|
237
|
+ these eventlog stop thread codes are now independent. We are nevertheless
|
|
|
238
|
+ left with some historical warts:
|
|
|
239
|
+
|
|
|
240
|
+ * 14,15: these correspond to GHC internal status codes `BlockedOnGA` and
|
|
|
241
|
+ `BlockedOnGA_NoSend` that are no longer used (and may never have been
|
|
|
242
|
+ used by any released version of GHC).
|
|
|
243
|
+ * 16,17: these would be used by `BlockedOnCCall` and
|
|
|
244
|
+ `BlockedOnCCall_Interruptible` which are GHC-internal status codes, but
|
|
|
245
|
+ these are never and have never been emitted into the eventlog. This has
|
|
|
246
|
+ caused confusion, and many versions of the `ghc-events` package support
|
|
|
247
|
+ these status codes. Threads blocking on foreign calls use `ForeignCall`
|
|
|
248
|
+ above.
|
|
|
249
|
+ * 19: this would be used by `ThreadMigrating` which is a GHC-internal
|
|
|
250
|
+ status code, but this is never emitted into the eventlog. Threads
|
|
|
251
|
+ migrating use a separate event `MIGRATE_THREAD`.
|
|
|
252
|
+ * `BlockedOnMsgGlobalise`: this is supported by versions of `ghc-events` as
|
|
|
253
|
+ code 18, but it appears never to have been emitted by any released version
|
|
|
254
|
+ of GHC. Most likely it was related to the local-heap GC experiment that
|
|
|
255
|
+ was never released.
|
|
|
256
|
+
|
|
|
257
|
+ Errata: previous versions of this document stated that code 16 is
|
|
|
258
|
+ `BlockedOnMsgThrowTo`. It appears this was always incorrect.
|
|
232
|
259
|
|
|
233
|
260
|
.. event-type:: MIGRATE_THREAD
|
|
234
|
261
|
|