Denis
Не хочу
Deleted Account
или это требование
Deleted Account
нехочуха
Deleted Account
тогда никак
Denis
Зачем пихать потоки там, где они не нужны?
Deleted Account
ты не можеш делать работу и следить за сигналами
Deleted Account
что то одно
Denis
ты не можеш делать работу и следить за сигналами
Вообще-то могу. Не могу я адекватно исключение кинуть
Denis
А ты умный
Deleted Account
А ты умный
я такой.. даа
Deleted Account
ну тебе треды не нужны а исключения нужны
Deleted Account
докупим ещё 16 гигов опиративы
Denis
Наркоман какой-то
Anton
Anton
Moar!
Aleksei
Остановись в дебагере в обработчике сигнала - посмотри на стек
Deleted Account
Vyacheslav
http://stackoverflow.com/questions/17766550/ctrl-c-interrupt-event-handling-in-linux
Vyacheslav
Если у тебя по сути бесконечный цикл - можно использовать флаг
Vyacheslav
Как в примере
Denis
У меня не бесконечный цикл, там вычисления со множеством объектов, у которых нужно вызвать деструкторы
Denis
Аргументируй
Deleted Account
ну что ещё за множества объектов
Deleted Account
что ещё за цикл в 1 потоке
Denis
Множество = много
Deleted Account
тем более
Pepe 🐸
Аргументируй
Его пора забанить . Он просто уныло флудит
Deleted Account
тока всё это делается в треаде
Denis
придется на каждом шаге проверять этот флаг
Тут проблема в том, что там бывают большие цепочки вызовов, и непонятно. где именно проверять
Deleted Account
и ты можеш обработчиком сигнала из главной треады менять значение работы в треад воркере
Aleksei
да хочет он в мэйне это делать - на здоровье
Anatoly
@bladdon Концепция сигналов такова, что бы в их хандлерах выставлять флаги и регировать на них вот в таких бесконечных циклах как твой например. throw в плюсах совсем иная концепция которая не может быть использованна в рамках POSIX signal handler. Попробуй пожалуйста найти способ проверять значения флага в момент вычисления, пусть и с задержкой но функция SIGINT, будет выполнять твою логику корректно.
Denis
А если у меня вызывается какая-то долгая функция из библиотеки, код которой я менять не могу, вообще никак?
Anatoly
боюсь что юзкейс для таких задач это всегда process/threads
Anatoly
что бы их можно было контроллировать
Anatoly
ну там наверное время весьма приличное
Anatoly
ждать можно, если время исполнения не критично
Denis
Deleted Account
ну там наверное время весьма приличное
тогда у такой функции должен быть свой способ остановки
Deleted Account
И просто убивать поток по сигналу?
ну не убивать а стопать
Anatoly
И просто убивать поток по сигналу?
я не знаю что ты хочешь)
Anatoly
убить, стопнуть, рестартнуть
Deleted Account
while(m_work) { logika }
Anatoly
распечатать состояние
Anatoly
что ты хочешь?
Deleted Account
по сигналу делаеш m_work = false
Denis
что ты хочешь?
У меня шелл. Я хочу, чтобы текущая команда завершилась по ctrl+c, как в питоне
Anatoly
то есть процесс вообще прекратил работу?
Denis
Не процесс, а вычисление. Процесс просит ввести следующую команду
Anatoly
понятно, тогда да, прибивай
Deleted Account
Deleted Account
когда твой с++ немного питон
Stanislav
https://twitter.com/alenacpp/status/842174970025328640
Stanislav
🙈
Deleted Account
Stanislav
какой то код))
Deleted Account
ну тогда ту тникакой магии, обычные темплейты 🙊
Крылатый
Итак
Крылатый
Нас тысяча.
Deleted Account
больше не будет?
Denis
Винда?
Никак нет
🦥Alex Fails
Поздравляем! Вы 1000-й посетитель нашего чата!
🦥Alex Fails
#history_of_procxx
Deleted Account
1000-й покупатель
Artem
Denis
Ура, я в истории
Deleted Account
а у меня 1000 цифрой
Square
1024?
Ещё один повод буит
Square
Вообще так то это (2^3)+1
Alexey
Кто-то что-то слышал про Teramind? мб общался с ними?