Denis
Не хочу
Deleted Account
или это требование
Deleted Account
нехочуха
Deleted Account
тогда никак
Denis
Зачем пихать потоки там, где они не нужны?
Deleted Account
ты не можеш делать работу и следить за сигналами
Deleted Account
что то одно
Deleted Account
Deleted Account
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
У меня не бесконечный цикл, там вычисления со множеством объектов, у которых нужно вызвать деструкторы
Deleted Account
Denis
Аргументируй
Deleted Account
ну что ещё за множества объектов
Deleted Account
что ещё за цикл в 1 потоке
Denis
Множество = много
Deleted Account
тем более
Aleksei
Pepe 🐸
Аргументируй
Его пора забанить . Он просто уныло флудит
Deleted Account
Deleted Account
тока всё это делается в треаде
Deleted Account
и ты можеш обработчиком сигнала из главной треады менять значение работы в треад воркере
Aleksei
да хочет он в мэйне это делать - на здоровье
Aleksei
Anatoly
@bladdon Концепция сигналов такова, что бы в их хандлерах выставлять флаги и регировать на них вот в таких бесконечных циклах как твой например. throw в плюсах совсем иная концепция которая не может быть использованна в рамках POSIX signal handler. Попробуй пожалуйста найти способ проверять значения флага в момент вычисления, пусть и с задержкой но функция SIGINT, будет выполнять твою логику корректно.
Denis
А если у меня вызывается какая-то долгая функция из библиотеки, код которой я менять не могу, вообще никак?
Anatoly
боюсь что юзкейс для таких задач это всегда process/threads
Anatoly
что бы их можно было контроллировать
Deleted Account
Anatoly
ну там наверное время весьма приличное
Anatoly
ждать можно, если время исполнения не критично
Denis
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
когда твой с++ немного питон
Stanislav
https://twitter.com/alenacpp/status/842174970025328640
Stanislav
🙈
Deleted Account
Stanislav
какой то код))
Deleted Account
ну тогда ту тникакой магии, обычные темплейты 🙊
Vyacheslav
Крылатый
Итак
Крылатый
Нас тысяча.
🦥Alex Fails
Deleted Account
больше не будет?
Denis
🦥Alex Fails
Поздравляем! Вы 1000-й посетитель нашего чата!
🦥Alex Fails
Deleted Account
1000-й покупатель
Artem
Denis
Ура, я в истории
Deleted Account
Evgenii
Square
1024?
Ещё один повод буит
Square
Вообще так то это (2^3)+1
Alexey
Кто-то что-то слышал про Teramind? мб общался с ними?