[18:24:27] <ada_ru> (Максим) Ура! Объявлен новый раунд Make with Ada! https://www.hackster.io/contests/adacore
[20:39:34] <ada_ru> (dikuchan) Здравствуйте. Подскажите, пожалуйста, как решить проблему. Написал  функцию, в которой создаю N-ое количество тасков. Затем  в той же функции через рандеву отдаю данные таскам, и в тасках далее происходят вычисления. Требуется  остановить вычисления через 60 секунд после начала. Пробовал через delay и abort, но так не работает (кажется, дилэй должен быть меньше времени, за которое функция принимает данные, потому что с delay 0.0 сработало), либо я не знаю, как правильно использовать. Можно на каждой итерации считать время с начала выполнения функции, но, конечно, нежелательно (время работы увеличивается раза в два). Также можно запустить отдельный процесс подсчета времени, но как мне в таком случае прервать вычисления в тасках?
[20:42:24] <ada_ru> (Максим) Насильственно (через abort) остановить задачи можно, но это стремно
[20:42:38] <ada_ru> (t91x0) abort будет срабатывать только в точках, где написано нечто вроде delay 0.0

Прерывание произойдёт минимум через указанное время, но может быть и за бОльшее время.
[20:43:18] <ada_ru> (Максим) нет, почему. можно срубить задачу оператором abort.
[20:43:47] <ada_ru> (t91x0) Мы о разном говорим, получается
[20:44:20] <ada_ru> (Максим) но лучше научить задачи самим раз в несколько (сот?) итераций проверять, не пора ли завершить расчет.
[20:45:04] <ada_ru> (Максим) можно сделать глобальную Boolean переменную типа "всем стоп" и выставлять ее по истечении таймаута
[20:45:05] <ada_ru> (dikuchan) Миллионов)
[20:45:34] <ada_ru> (Максим) проверка ее будет быстрая
[20:46:12] <ada_ru> (Максим) поставить на нее признаr Volatile чтобы компилятор знал, что она меняется в другой задаче
[20:47:03] <ada_ru> (dikuchan) А не подскажете, как мне вообще проверять, что тайм-аут истек?
[20:47:23] <ada_ru> (dikuchan) Что-нибудь подобное в Real_Time есть?
[20:48:38] <ada_ru> (Максим) В той задаче, что раздает задания (управляющей) поставить можно delay 60.0;
[20:49:23] <ada_ru> (Максим) хотя вычисления могет окончится раньше...
[20:50:58] <ada_ru> (dikuchan) А как мне остановить задачи? Вот с этим проблема
[20:51:14] <ada_ru> (Максим) можно ждать когда посчитает первая задача но не дольше чем 60 секунд. через Timed Entry Call
[20:54:00] <ada_ru> (Максим) ну сделай так, заведи флаг по которому будут останавливаться задачи сами, запусти все задачи, потом жди результата от первой задачи не дольше 60 сек, если она остановится, ждём остальные пока посчитают, а если нет, тогда киляем задачи через abort <задача>;
[20:55:22] <ada_ru> (dikuchan) Хорошо, попробую
[21:07:49] <ada_ru> (dikuchan) Блин. Так понимаю, если в задаче что-то выполняется, то я не смогу достучаться к ней через рандеву, описанное ниже в теле задачи?
[21:08:03] <ada_ru> (dikuchan) Или расположение кода не имеет значения?
[21:08:37] <ada_ru> (Максим) Пока задача не сделает accept ты к ней не достучишься, без разницы от места
[21:10:38] <ada_ru> (dikuchan) В общем, сделал по вашему совету Timed Entry Calls в entry, возвращающем значение, и глобальную переменную. Все работает
[21:10:40] <ada_ru> (dikuchan) Спасибо
[21:11:04] <ada_ru> (dikuchan) Что-то не доходило так сделать раньше
[21:11:27] <ada_ru> (nitrocerber) sweet Jesus, тут реально обсудили адскую прикладную проблему)) пойду бахну коньяка за здоровье участников дискуссии!
[21:11:44] <ada_ru> (dikuchan) А проверка boolean на каждой итерации много ресурсов требует?
[21:11:58] <ada_ru> (dikuchan)  отвечает (nitrocerber) на <sweet Jesus, тут реа…>
Хм, а это ирония?
[21:12:20] <ada_ru> (Максим) Ну попробуй
[21:12:23] <ada_ru> (nitrocerber) о нет. если не лень, полистайте вверх. обсуждают в основном плюсы, дистрибы никсов итд. всё, что угодно, кроме ады)
[21:12:30] <ada_ru> (Максим) https://tio.run/##jVPLTsMwELznK1a90BwaNXAjKhIIIYF4CRAc0bZeWgvjjZyN2n59cRI3D8Qrp@x6Mjsz66DCydKi7HZrLSs4VZg80UZeL@@yKHe8IFU6ghvUFnQRAYBg8Q6yzQle2L2TC23/kBW3hUdBJ9mgdc6WYPxARWkEjoFLgVuU0qGJayBZFciyqKofhXOPO2M2hBaOZ3CBpqCGs5b5zAZFG2rwtaQ5q@1Q0pyW2gYhuFhQLkNxb@zgCryxFJIE0ikY5jyc@UeRwS1MkzQDmEy8Kv4gWPsBsCJHHY42WmC9Ilvr7pyrmi/UQxm/BAKKO@o9Ygbp4VGfuSJoottUhJqDz1oGixdYwOykJeptNbkv5fVaV/NHIS2lSY2@30TzXniN6JxPYxyiioHfWqDHPaMpyaOCiyxqs29DDlQHD2iX1It6P2J8FSfderr4qqogQwv5gk/jpMmxHh6HeH6wqjwyeGQX9fabJtPfvxT9QX5Bo/2A5nLO4MmVFFp/ehw6@IeLTuV3SuubNGcnfZr2rIquGRdag6vYP42qovq1s93uEw
[21:12:42] <ada_ru> (Максим) Вот мой пример. Но он виснет :)
[21:13:29] <ada_ru> (dikuchan)  отвечает (Максим) на <Вот мой пример. Но о…>
Ого! Спасибо большое, сейчас посмотрю
[21:15:21] <ada_ru> (Максим) А, copy/past глюк! Та мв последних двух Workers (1) надо поставить J
[21:42:08] <ada_ru> (Vinpuh) https://github.com/AdaDoom3/AdaDoom3 наконец-то есть во что погамать :)
[23:00:48] <ada_ru> (zloidemon)  отвечает (Vinpuh) на <https://github.com/A…>
Это 3д движек что ли?
[23:06:02] <ada_ru> (Vinpuh)  отвечает (zloidemon) на <Это 3д движек что ли…>
Ну почти, типа в планах, что поиграть в некоторые уровни можно будет: Planned Features:

Load and play doom 3 bfg levels

Load Valve map workshop levels

Native ports for Windows and SDL

Input support for XBox 360 controllers

Multi-monitor windowing

Threaded rendering with Vulkan

Responsive multi-player

Steam support for user accounts and achievements
[23:27:52] <ada_ru> (coopht)  отвечает (nitrocerber) на <о нет. если не лень,…>
Ада не нужна
[23:29:54] <ada_ru> (I_vlxy_I) правильно. вот java - нужна! на ней дженкинс писан!
[23:30:44] <ada_ru> (coopht) и java не нужна
[23:30:48] <ada_ru> (coopht) только C++
[23:30:50] <ada_ru> (I_vlxy_I) и питон нужен! на нем reviewboard писана!
[23:30:58] <ada_ru> (coopht) питон тоже не нужен
[23:31:04] <ada_ru> (I_vlxy_I) а на аде и плюсах нет ни того ни другого!
[23:31:20] <ada_ru> (coopht) не было бы этих ненужных никому языков не боявилось бы этих ломучих поделий
[23:31:28] <ada_ru> (coopht) и тормозящих
[23:31:46] <ada_ru> (I_vlxy_I) да ладно, дженкинс даже на армах нормуль крутится
[23:32:00] <ada_ru> (I_vlxy_I) а вот плюсатый компилятор там ооочень слоупочно ворочается!