int *p = new int;
// delete p in thread 1
// delete p in thread 2
Я знаю, что make p
равно nullptr
- хорошее поведение, но сейчас я просто хочу знать, является ли delete
поточно-ориентированным? Нужно ли использовать замок для случая выше?
Да, я удаляю один и тот же объект дважды.
Это связано с тем, что я обнаружил, что delete p
дважды в одном потоке вызовет ошибку дампа ядра, тогда как delete p
два раза в двух потоках не может выдать ошибку.
Я знаю, что двойное удаление - это UB, поэтому я хочу знать, является ли delete
поточно-ориентированным, что означает, что если мы введем функцию delete
дважды одновременно, мы будем в безопасности, потому что она является поточно-поточной. сейф.