File tree Expand file tree Collapse file tree 2 files changed +5
-1
lines changed Expand file tree Collapse file tree 2 files changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ The course aims to equip students with the ability to:
59
59
### Textbook
60
60
61
61
- [ Slides] ( https://docs.google.com/presentation/d/1NMg08N1LUNDPuMxNZ-UMbdH13p8LXgMM3esbWRMowhU/edit?usp=sharing )
62
+ - [ Code Documentation] ( https://kaist-cp.github.io/cs431/cs431/ )
62
63
- References
63
64
+ [ The Art of Multiprocessor Programming] ( https://dl.acm.org/doi/book/10.5555/2385452 )
64
65
+ [ The Crossbeam Library Documentation] ( https://docs.rs/crossbeam/latest/crossbeam/ )
@@ -181,7 +182,7 @@ Ensure you are proficient with the following development tools:
181
182
182
183
- All assignments will be announced at the start of the semester.
183
184
- Submit your solutions to <https://gg.kaist.ac.kr/course/19>.
184
- - Refer to the documentation at <https://www.fearless.systems /cs431/cs431_homework/>.
185
+ - Refer to the documentation at <https://kaist-cp.github.io /cs431/cs431_homework/>.
185
186
- You are **permitted** to use ChatGPT or other LLMs.
186
187
187
188
Original file line number Diff line number Diff line change @@ -89,6 +89,9 @@ unsafe impl RawLock for McsParkingLock {
89
89
// SAFETY: See safety of McsLock::unlock().
90
90
drop ( unsafe { Box :: from_raw ( node) } ) ;
91
91
let next_ref = unsafe { & * next } ;
92
+
93
+ // It is important to clone the thread before unlocking, the next waiter,
94
+ // because then the next waiter may free `next_ref`.
92
95
let thread = next_ref. thread . clone ( ) ;
93
96
next_ref. locked . store ( false , Release ) ;
94
97
thread. unpark ( ) ;
You can’t perform that action at this time.
0 commit comments