Такой вопрос. Я знаю, что если в функции есть время

- delay, таймер - то при повторном обращении к ней, она начинает сначала. Т.е. если поставить delay на 2 секунды, и обращаться к функции каждую секунду, то логика после delay никогда не сработает.
Это работает так же для прочих функций, не использующих время? Например, у меня есть функция без какого либо использования времени. Без таймеров, делеев и прочего.
Если в игре так совпадет, что ее вызовут 2 раза, почти одновременно, то она НЕ будет сбрасываться? Оба раза посчитает (т.к. компилятор анрила их в очереди расположит) или все же сбросит?
Речь идет прям о миллисекундном совпадении, хочу понять, возможен ли с этим баг или нет.

5 ответов

23 просмотра

Предлагаю провести експеримент: 1. Запихиваете в тик delay на условно 5 секунд и после него принт на экран. По тому как написано, на экране ничего не будет, тик ведь точно чаще чем раз в 5 секунд. А на самом деле как? 2. Разместить в тик подряд выполнение двух функций. Сколько их выполниться за один тик? Выполниться ли их тик*2 раз или тик раз? Или сколько раз?

Андрей-Соболев Автор вопроса
Богдан Karabinskyi
Предлагаю провести експеримент: 1. Запихиваете в т...

Я раньше целый кусок БП переделывал по той причине, что повторный вызов функции до ее окончательного исполнения сбрасывал результат. Надо будет вновь гайды поискать по времени, кажется, я там многое не понимаю.

С самого начала ошибка в описании, вышесказанное относится только к retriggerable delay. По-поводу остального прям улыбнулся )) "почти одновременно" - это как? )) но нет, при нормальном написании логики с этим не может быть проблем в твоём случае

Андрей-Соболев Автор вопроса
Aleksei Gagarin
С самого начала ошибка в описании, вышесказанное о...

Спасибо. Я опасался случая когда, допустим в главном здании игрока функция "заспавнить юнит". И к ней, так выйдет, в одну миллисекунду 2+ БП обратятся одновременно.

Андрей Соболев
Спасибо. Я опасался случая когда, допустим в главн...

Здесь вообще некорректно оперировать понятием времени, второй вызов произойдет только тогда, когда закончится первый, т.е. произойдет выход из функции. Это в случае, если ты не используешь латентные/асинхронные функции. Если используешь, тогда ты уже просто заранее должен понимать, что повторный вызов функции может произойти, когда операция ещё выполняется и принять меры. Здесь уже от реализации функции все зависит. Delay и Ret... Delay неплохой пример того как разные функции могут себя вести при повторном вызове

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта