- StgBlockingQueueElement represents the types of closures that can be
- found on a blocking queue: StgTSO, StgRBHSave, StgBlockedFetch.
- (StgRBHSave can only appear at the end of a blocking queue).
- Logically, this is a union type, but defining another struct with a common
- layout is easier to handle in the code (same as for StgMutClosures).
+ StgBlockingQueueElement is a ``collective type'' representing the types
+ of closures that can be found on a blocking queue: StgTSO, StgRBHSave,
+ StgBlockedFetch. (StgRBHSave can only appear at the end of a blocking
+ queue). Logically, this is a union type, but defining another struct
+ with a common layout is easier to handle in the code (same as for
+ StgMutClosures).
+ Note that in the standard setup only StgTSOs can be on a blocking queue.
+ This is one of the main reasons for slightly different code in files
+ such as Schedule.c.