@ProCxx

Страница 671 из 2477
Denis
16.03.2017
11:15:51
А память не потечет7

Denis
16.03.2017
11:17:07
signal.h
И как из обработчика правильно кинуть исключение?

Google
babysitter
16.03.2017
11:17:24
И как из обработчика правильно кинуть исключение?
не слушай ты его, не читает, что мы пишем.

нельзя кидать исключение из обработчика, там стек не гарантируется правильный, это не совсем вызов функции

Denis
16.03.2017
11:18:06
Как будет выглядеть стек после long jump?

Tema
16.03.2017
11:19:11
ass fire triggered

зачем сразу исключение

просто ловиш сигинт, делаеш то чт охочеш

Denis
16.03.2017
11:19:49
Почитай то, что я писал выше

Tema
16.03.2017
11:19:50
отправаляеш подсистеме запрос на остановку

работы

Плюшка
16.03.2017
11:19:55
а если я хочу поймать сигинт и выкинуть исключение?

Denis
16.03.2017
11:20:06
Tema
16.03.2017
11:20:28
та которая в данный момент у тебя делает работу

Google
Denis
16.03.2017
11:20:31
У меня все в одном потоке

Tema
16.03.2017
11:20:32
которую ты хотел стопнуть

сделай в нескольких

Denis
16.03.2017
11:20:46
Не хочу

Tema
16.03.2017
11:20:48
или это требование

нехочуха

тогда никак

Denis
16.03.2017
11:21:01
Зачем пихать потоки там, где они не нужны?

Tema
16.03.2017
11:21:06
ты не можеш делать работу и следить за сигналами

что то одно

Denis
16.03.2017
11:21:40
ты не можеш делать работу и следить за сигналами
Вообще-то могу. Не могу я адекватно исключение кинуть

Denis
16.03.2017
11:22:23
А ты умный

Tema
16.03.2017
11:22:32
А ты умный
я такой.. даа

ну тебе треды не нужны а исключения нужны

докупим ещё 16 гигов опиративы

Denis
16.03.2017
11:23:13
Наркоман какой-то

Anton
16.03.2017
11:25:03
Moar!

Aleksei
16.03.2017
11:25:07
Остановись в дебагере в обработчике сигнала - посмотри на стек

Google
Vyacheslav
16.03.2017
11:26:40
http://stackoverflow.com/questions/17766550/ctrl-c-interrupt-event-handling-in-linux

Если у тебя по сути бесконечный цикл - можно использовать флаг

Как в примере

Denis
16.03.2017
11:28:41
У меня не бесконечный цикл, там вычисления со множеством объектов, у которых нужно вызвать деструкторы

Denis
16.03.2017
11:29:33
Аргументируй

Tema
16.03.2017
11:30:04
ну что ещё за множества объектов

что ещё за цикл в 1 потоке

Denis
16.03.2017
11:30:17
Множество = много

Tema
16.03.2017
11:30:21
тем более

Pepe
16.03.2017
11:30:29
Аргументируй
Его пора забанить . Он просто уныло флудит

Tema
16.03.2017
11:30:51
тока всё это делается в треаде

Denis
16.03.2017
11:31:11
придется на каждом шаге проверять этот флаг
Тут проблема в том, что там бывают большие цепочки вызовов, и непонятно. где именно проверять

Tema
16.03.2017
11:31:19
и ты можеш обработчиком сигнала из главной треады менять значение работы в треад воркере

Aleksei
16.03.2017
11:31:24
да хочет он в мэйне это делать - на здоровье

Anatoly
16.03.2017
11:34:50
@bladdon Концепция сигналов такова, что бы в их хандлерах выставлять флаги и регировать на них вот в таких бесконечных циклах как твой например. throw в плюсах совсем иная концепция которая не может быть использованна в рамках POSIX signal handler. Попробуй пожалуйста найти способ проверять значения флага в момент вычисления, пусть и с задержкой но функция SIGINT, будет выполнять твою логику корректно.

Denis
16.03.2017
11:35:51
А если у меня вызывается какая-то долгая функция из библиотеки, код которой я менять не могу, вообще никак?

Google
Anatoly
16.03.2017
11:36:34
боюсь что юзкейс для таких задач это всегда process/threads

что бы их можно было контроллировать

Anatoly
16.03.2017
11:37:06
ну там наверное время весьма приличное

ждать можно, если время исполнения не критично

Denis
16.03.2017
11:37:26
Tema
16.03.2017
11:37:29
ну там наверное время весьма приличное
тогда у такой функции должен быть свой способ остановки

Admin
ERROR: S client not available

Tema
16.03.2017
11:37:49
И просто убивать поток по сигналу?
ну не убивать а стопать

Anatoly
16.03.2017
11:37:58
И просто убивать поток по сигналу?
я не знаю что ты хочешь)

убить, стопнуть, рестартнуть

Tema
16.03.2017
11:38:10
while(m_work) { logika }

Anatoly
16.03.2017
11:38:15
распечатать состояние

что ты хочешь?

Tema
16.03.2017
11:38:27
по сигналу делаеш m_work = false

Denis
16.03.2017
11:39:00
что ты хочешь?
У меня шелл. Я хочу, чтобы текущая команда завершилась по ctrl+c, как в питоне

Anatoly
16.03.2017
11:39:51
то есть процесс вообще прекратил работу?

Denis
16.03.2017
11:40:20
Не процесс, а вычисление. Процесс просит ввести следующую команду

Anatoly
16.03.2017
11:41:13
понятно, тогда да, прибивай

Tema
16.03.2017
11:41:23
Google
Tema
16.03.2017
11:41:32
когда твой с++ немного питон

Плюшка
16.03.2017
11:43:03
це с++29

Антон
16.03.2017
11:46:11
2029 год. Компилятор C++ пишет код за тебя.

Плюшка
16.03.2017
11:46:22
3329*

Stanislav
16.03.2017
11:54:26
https://twitter.com/alenacpp/status/842174970025328640

?

Tema
16.03.2017
11:56:43
Stanislav
16.03.2017
11:57:02
какой то код))

Tema
16.03.2017
11:57:25
ну тогда ту тникакой магии, обычные темплейты ?

Плюшка
16.03.2017
11:57:35
https://twitter.com/alenacpp/status/842174970025328640
@alenacpp How many years until you drop the "auto" keyword and go full Haskell? аааа

Дед Пегас
16.03.2017
12:08:25
Итак

Нас тысяча.

Tema
16.03.2017
12:09:08
больше не будет?

Denis
16.03.2017
12:09:16
Винда?
Никак нет

Alex Фэils?︙
16.03.2017
12:09:30
Поздравляем! Вы 1000-й посетитель нашего чата!



Tema
16.03.2017
12:10:09
1000-й покупатель

Страница 671 из 2477