История изменений
Исправление wandrien, (текущая версия) :
Даже не знаю, что можно считать «глупой и страшной» ошибкой.
Ошибки по большей части банальны - ошибки копипаста, когда в однотипном наборе присваиваний забыли поменять одну из переменных, ошибки в сравнениях, когда вместо =<
стоит <
или наоборот, ошибки смещения на 1, перепутанные единицы измерения, когда метры с футами в одном вычислении фигурируют и т.п. А вот последствия ошибок порой бывают действительно и глупые, и страшные.
У меня сейчас в рабочем списке фигурирует на исправление еще одна типичная ошибка многопоточного приложения:
- Поток А запускает поток Б.
- Поток Б ставит в очередь коллбек, который должен быть исполнен в потоке А.
- Поток А до обработки коллбека завершает работу потока Б и освобождает общие ресурсы.
- Срабатывает коллбек, и программа обращается к освобождённой памяти.
Исходная версия wandrien, :
Даже не знаю, что можно считать «глупой и страшной» ошибкой.
Ошибки по большей части банальны - ошибки копипаста, когда в однотипном наборе присваиваний забыли поменять одну из переменных, ошибки в сравнениях, когда вместо =<
стоит <
или наоборот, ошибки смещения на 1, перепутанные единицы измерения, когда метры с футами в одном вычислении фигурируют и т.п. А вот последствия ошибкой порой бывают действительно и глупые, и страшные.
У меня сейчас в рабочем списке фигурирует на исправление еще одна типичная ошибка многопоточного приложения:
- Поток А запускает поток Б.
- Поток Б ставит в очередь коллбек, который должен быть исполнен в потоке А.
- Поток А до обработки коллбека завершает работу потока Б и освобождает общие ресурсы.
- Срабатывает коллбек, и программа обращается к освобождённой памяти.