А ты эвент как выстреливаешь?

9 ответов

6 просмотров

void OnDownloadComplete(...) { if (DownloadSynchronizationEvent) { UE_LOG(LogTexture, Log, TEXT(">>> RMP: FRmpManagedTextureLoadAsyncTask::OnDownloadComplete [%p] Triggering the download complete event"), this); DownloadSynchronizationEvent->Trigger(); } }

Jokhar-Ali Автор вопроса
Egor | hackerman.me
void OnDownloadComplete(...) { if (DownloadSynch...

А ты уверен, что у тебя эвент раньше создаётся, чем выстреливается коллбэк?

Jokhar Ali
А ты уверен, что у тебя эвент раньше создаётся, че...

@harrm @devnova @AJIADb9 В общем, если интересно, я нашёл проблему. 1. Отправлялось несколько десятков/сотен асинхронных тасков на загрузку в фоне. 2. Таски все валились в один и тот же момент на обработку, без какой-либо очереди. 3. Таскам требовалась "принудительная" синхронность (нужно было выполнить HTTP запрос и долждаться его завершения прежде чем продолжать выполнение, иначе задача считалась выполненной, но результата не получалось). 4. Я решал это использованием блокирующих поток/тред эвентов системных. 5. Получалось так, что из-за обилия тасков, все доступные потоки блокировались, при этом HTTP запросы, судя по всему, также должны были на этих самых рабочих потоках выполняться, но из-за блокировки этого не срабатывало. Решение - очередь и ограничение количества подобных тасков, как у меня изначально оно и было сделано, но что я посчитал излишним и выпилил во время оптимизации.

Egor | hackerman.me
@harrm @devnova @AJIADb9 В общем, если интересно...

хахх, если у тебя от обилия тасков внезапно переставали работать тики - добро пожаловать в клуб! :D

Vladimir Alyamkin
хахх, если у тебя от обилия тасков внезапно перест...

В общем, на компах "целевой аудитории" бывает по 2-4 ядра. И, судя по всему, соответственно, примерно по 4 рабочих потока. Даже если делать в 4 потока загрузку - встаёт колом. Очень печально :)

Egor | hackerman.me
В общем, на компах "целевой аудитории" бывает по 2...

Synch эвентами это по идее разруливается, стака не должно быть

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

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

Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Это фейк @cruppto_newbot?
Antskup
10
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Гуру lldb имеются?) Пробую себя в дебаге и реверсе на примере функции _CFProcessPath. Ставлю брейкпоинт по названию, и выполнение программы на ней приостанавливается. Дальше ...
Сергей Романенко
1
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
ребят, привет. за какое время бот полученную заявку на вступление в группу может принять \отклонить? Помню речь была про 5 минут, сейчас как?
Роман Ромашин :)
10
Добрый день! Не подскажете как к модели Категории Шопоголика добавить отношение Тейлора. Пробовал по документации, но не получается. Мб уже кто-то делал?
Николай Афанасенко
6
Доброго времени суток. Правильно ли я понимаю, что с введением новой платежной единицы stars, я просто могу оставить текущую платёжку от Юкассы, которая выполняется на сайте с...
Prokhor Chulkov
7
Карта сайта