diff --git a/README.md b/README.md index 66c46b4..e36022f 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ 1. [Бесконечные циклы](runtime/endless_loop.md) 2. [Рекурсия](runtime/recursion.md) 3. [Ложный noexcept](runtime/noexcept.md) - 4. [Переполненине буфера](runtime/array_overrun.md) + 4. [Переполнение буфера](runtime/array_overrun.md) 5. [Сборщик мусора](runtime/garbage_collector.md) 6. [RAII vs (N)RVO](runtime/rvo_vs_raii.md) 7. [Разыменование nullptr](runtime/nullptr_dereference.md) @@ -81,7 +81,7 @@ 1. [Race condition](concurrency/race_condition.md) 2. [shared_ptr](concurrency/shared_ptr.md) 3. [thread::join](concurrency/jthread.md) - 4. [Повторный захват мьютекса](concurrency/double_lock.md) + 4. [Повторный захват mutex](concurrency/double_lock.md) 5. [Signal-unsafe](concurrency/signal_unsafe.md) 6. [condition_variable](concurrency/condition_variable.md) diff --git a/concurrency/double_lock.md b/concurrency/double_lock.md index bfcc933..c863030 100644 --- a/concurrency/double_lock.md +++ b/concurrency/double_lock.md @@ -1,11 +1,11 @@ -# Повторный захват мьютекса +# Повторный захват mutex Deadlock это, конечно, печально. Система завязалась в узел и никогда не развяжется. А сколько мьютексов нужно, чтобы уйти в deadlock? Немного подумав, можно решить, что одного достаточно — просто захвати его два раза подряд, не отпуская, в одном и том же потоке. -Возможно, под какой-то платфорвой это и так. Но в C++ это неопределенной поведение и +Возможно, под какой-то платформой это и так. Но в C++ это неопределенной поведение и для красивого показательного дедлока нужно два мьютекса. А с одним — ваш фокус не удастся и превратится в фокус от мира UB. ```C++ @@ -35,7 +35,7 @@ int main(){ } ``` -Этот пример дает [разные](https://godbolt.org/z/aoren4) результаты в на одном и том же компиляторе, на одно и той же платформе, на одном и том же уровне оптимизаций. Просто подключили `pthread` или нет. +Этот пример дает [разные](https://godbolt.org/z/aoren4) результаты на одном и том же компиляторе, на одно и той же платформе, на одном и том же уровне оптимизаций. Просто подключили `pthread` или нет. Кто в здравом уме будет такое делать-то? Никто же никогда не захватывает один и тот же мьютекс два раза подряд.