По поводу still_alive непонятно - то ли сабж будет жить вечно, то ли какой-то из пунктов внутри цикла имеет побочным эффектом изменение значения still_alive.
Переменная инициализируется перед самим циклом. Предположительно - она локальная, а менять локальные переменные в другом потоке - мягко говоря, плохая идея. Даже если эта переменная глобальная - после ее объявления (и инициализации) не запускаются никакие фоновые задачи; следовательно, если кто-то с ней и имеет дело - то этот поток был запущен раньше. Запускать поток, который работает с еще неинициализированной глобальной переменной - идея не намного лучше.
Разумеется, многие языки позволят вам выстрелить себе в ногу. Но от стрельбы в ногу маски и тесты не помогают.
Что, вот так вот объявленная локально переменная будет меняться где-то, как-то и кем-то? А как?
Ну, допустим, угадает кодер адрес, ок (он же всеведущ и всемугущ). При этом, в многопоточке оно может измениться сразу после проверки и уже de facto трупак будет проделывать вот это вот всё, что в теле цикла.
Comments 14
Reply
Reply
Разумеется, многие языки позволят вам выстрелить себе в ногу. Но от стрельбы в ногу маски и тесты не помогают.
Reply
Ну, допустим, угадает кодер адрес, ок (он же всеведущ и всемугущ). При этом, в многопоточке оно может измениться сразу после проверки и уже de facto трупак будет проделывать вот это вот всё, что в теле цикла.
Reply
Reply
Reply
Reply
Reply
Leave a comment