Полный текст

О правильной и аккуратной остановке потоков в LinuxЗапустить поток в Linux на C++ или Rust — дело пары строк, будь то std::thread или thread::spawn. А вот аккуратно его остановить, чтобы он успел за собой прибраться, а не просто исчезнуть по SIGKILL — это уже задачка со звёздочкой. Особенно если вы пишете свой долгоживущий сервер или СУБД.Казалось бы, базовая операция, но универсального решения не существует. Зато существует множество подводных камней, о которые с лёгкостью споткнётся даже опытный разработчик.Выясним, почему всё так сложно, и рассмотрим один маленький, но чудесный фокус.