rts: Fix synchronization on thread blocking state
We now use a release barrier whenever we update a thread's blocking state. This required widening StgTSO.why_blocked as AArch64 does not support atomic writes on 16-bit values.
Showing
- rts/Exception.cmm 1 addition, 1 deletionrts/Exception.cmm
- rts/PrimOps.cmm 37 additions, 43 deletionsrts/PrimOps.cmm
- rts/RaiseAsync.c 2 additions, 2 deletionsrts/RaiseAsync.c
- rts/STM.c 1 addition, 1 deletionrts/STM.c
- rts/Schedule.c 2 additions, 1 deletionrts/Schedule.c
- rts/StgMiscClosures.cmm 1 addition, 1 deletionrts/StgMiscClosures.cmm
- rts/Threads.c 6 additions, 5 deletionsrts/Threads.c
- rts/TraverseHeap.c 1 addition, 1 deletionrts/TraverseHeap.c
- rts/include/rts/storage/TSO.h 7 additions, 2 deletionsrts/include/rts/storage/TSO.h
- rts/include/stg/SMP.h 9 additions, 0 deletionsrts/include/stg/SMP.h
- rts/posix/Select.c 2 additions, 2 deletionsrts/posix/Select.c
- rts/sm/Compact.c 1 addition, 1 deletionrts/sm/Compact.c
- rts/sm/NonMovingMark.c 1 addition, 1 deletionrts/sm/NonMovingMark.c
- rts/sm/Scav.c 1 addition, 1 deletionrts/sm/Scav.c
- rts/win32/AsyncMIO.c 1 addition, 1 deletionrts/win32/AsyncMIO.c
Loading
Please register or sign in to comment