MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ track_save_task()

void MayaFlux::IO::IOManager::track_save_task ( std::future< bool >  fut)
private

Retain a save task in m_save_tasks and opportunistically reclaim finished ones.

Lock-free: delegates to Parallel::AsyncGroup, which never blocks one caller on another's future. Failed saves are logged through the group's exception handler set up in the constructor, which reuses Journal::error_rethrow for the catch(const std::exception&) vs catch(...) message dispatch and then swallows the rethrow, since AsyncGroup's contract is to report a task's exception, not propagate it into whichever thread happens to call submit()/drain() next. Nothing about a task's own work (already running on its own thread via std::async before this is called) is affected by tracking it here.

Definition at line 972 of file IOManager.cpp.

973{
974 m_save_tasks.submit(std::move(fut));
975}
Parallel::AsyncGroup< bool > m_save_tasks
void submit(std::future< T > fut)
Retains fut and opportunistically reclaims completed work.

References m_save_tasks, and MayaFlux::Parallel::AsyncGroup< T >::submit().

Referenced by save_image(), save_image(), save_mesh(), save_mesh(), save_mesh(), save_mesh(), save_mesh_snapshot(), save_spatial_snapshot(), save_volume(), save_volume(), stop_audio_capture(), stop_video_capture(), and write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: