Сообщение Re: Как обойти дедлок в ntdll? от 06.02.2020 4:15
Изменено 08.02.2020 13:36 Vain
Re: Как обойти дедлок в ntdll?
Здравствуйте, Basil2, Вы писали:
B>Иногда поток 2 выделяет память. Это происходит через функцию рантайма __lock(). Если поток приостанавливают в этот момент, то он так и остается в лочке. Затем приостановивший его тред сам пытается выделить память, попадает в ту же __lock() и всё виснет намертво.
Почему бы просто не делегировать выделение и освобождение памяти одному потому, т.е. первому? Придётся написать клинап памяти от второго потока, но это и так надо делать после остановки потоков.
B>Иногда поток 2 выделяет память. Это происходит через функцию рантайма __lock(). Если поток приостанавливают в этот момент, то он так и остается в лочке. Затем приостановивший его тред сам пытается выделить память, попадает в ту же __lock() и всё виснет намертво.
Почему бы просто не делегировать выделение и освобождение памяти одному потому, т.е. первому? Придётся написать клинап памяти от второго потока, но это и так надо делать после остановки потоков.
Re: Как обойти дедлок в ntdll?
Здравствуйте, Basil2, Вы писали:
B>Иногда поток 2 выделяет память. Это происходит через функцию рантайма __lock(). Если поток приостанавливают в этот момент, то он так и остается в лочке. Затем приостановивший его тред сам пытается выделить память, попадает в ту же __lock() и всё виснет намертво.
Почему бы просто не делегировать выделение и освобождение памяти одному потоку, т.е. первому? Придётся написать клинап памяти от второго потока, но это и так надо делать после остановки потоков.
B>Иногда поток 2 выделяет память. Это происходит через функцию рантайма __lock(). Если поток приостанавливают в этот момент, то он так и остается в лочке. Затем приостановивший его тред сам пытается выделить память, попадает в ту же __lock() и всё виснет намертво.
Почему бы просто не делегировать выделение и освобождение памяти одному потоку, т.е. первому? Придётся написать клинап памяти от второго потока, но это и так надо делать после остановки потоков.