Size: a a a

2019 March 06

N

Nikita in Unreal Engine
Олег Постоев
Наверное, поток надо хранить где-то в рутовом синглтоне, что б не выйти и не остановить его сайдэффектами
Он и есть в синглтоне, но мне нужно чтобы он спал когда для него нет работы.
источник

ОП

Олег Постоев... in Unreal Engine
Nikita
Он и есть в синглтоне, но мне нужно чтобы он спал когда для него нет работы.
А он что делает без событий?
источник

DE

Dmitrii Elagin in Unreal Engine
Привет всем, я тут совсем новенький, тут можно задать вопрос по плюсам?
источник

N

Nikita in Unreal Engine
Это на стандартном C++, а я пока не отчаялся и пытаюсь на анриловском) Но все равно спасибо.
источник

AS

Alexander Shumeyko in Unreal Engine
Nikita
Это на стандартном C++, а я пока не отчаялся и пытаюсь на анриловском) Но все равно спасибо.
Ну у анрила есть TFuture
https://forums.unrealengine.com/development-discussion/engine-source-github/27216-new-core-feature-async-framework-master-branch-and-4-8

Вряд ли принцип работы сильно отличается, я просто не помню делается ли это через future
источник

AY

Alexandr Yanenko in Unreal Engine
Nikita
Это на стандартном C++, а я пока не отчаялся и пытаюсь на анриловском) Но все равно спасибо.
В стд на это дело вроде используется conditional_variable
источник

AY

Alexandr Yanenko in Unreal Engine
Это штука, которая пробуждает тред, когда ей посылают сигнал
источник

N

Nikita in Unreal Engine
Олег Постоев
А он что делает без событий?
Повторюсь, я не понимаю как тут применить события. Есть FRunnable, у него в отдельном потоке запускается метод Run, при выходе из Run поток завершится. По моей задумке в Runв цикле должна слушаться очередь из которой поток получает задания. Синглтон при создании запускает поток, а при удалении шлет потоку задачу закрыться и ожидает его завершения. Проблема в реализации этой очереди, которая должна блокировать поток когда она пустая.
Или я что-то делаю совсем не так?
источник

AY

Alexandr Yanenko in Unreal Engine
Или по прошествию времени
источник

AR

Alexey Rodionov in Unreal Engine
деляются такие вещи везде одинаково. просто примитивы синхронизации по разному называется

в чистом с++ это std::mutex и std::condition_variable

в анриле это FCriticalSection и FEvent
источник

AY

Alexandr Yanenko in Unreal Engine
По крайней мере, в одном плагине для уеча оно использовалось
источник

AY

Alexandr Yanenko in Unreal Engine
Alexey Rodionov
деляются такие вещи везде одинаково. просто примитивы синхронизации по разному называется

в чистом с++ это std::mutex и std::condition_variable

в анриле это FCriticalSection и FEvent
Event это аналог conditional_variable?
источник

AR

Alexey Rodionov in Unreal Engine
да
источник

AY

Alexandr Yanenko in Unreal Engine
А, ну тогда это оно
источник

N

Nikita in Unreal Engine
Воооот, спасибо за ключевые слова, возможно именно их я и не смог найти.
источник

AY

Alexandr Yanenko in Unreal Engine
Вообще, оффтоп — почему в анриале принято никогда не использовать стд?
источник

N

Nikita in Unreal Engine
Только вроде не FMutex, а ?CriticalSection
источник

N

Nikita in Unreal Engine
Потому что стд во времена разработки анрила была говном(?)
источник

AR

Alexey Rodionov in Unreal Engine
Nikita
Только вроде не FMutex, а ?CriticalSection
да
источник

N

Nikita in Unreal Engine
А огромный полустандартный boost слишком огромный. Наверно решили что свои инструменты будут удобней для игростроения, чем медленноразвивающиеся стандартные.
источник