|
|
|
|
|
by rigtorp
1819 days ago
|
|
Yes this re-ordering can cause a deadlock. But it's not an allowed optimization to change a non-deadlocking program into a potentially deadlocking program, so this reordering can not happen. (http://eel.is/c++draft/intro.multithread#intro.progress-7) You can still get this deadlock if you actually write the code like that: lock1.lock(); lock2.unlock(); |
|