|
Blender V4.5
|
Go to the source code of this file.
Macros | |
| #define | BLENDER_MAX_THREADS 1024 |
| #define | BLI_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER |
| #define | THREAD_LOCK_READ 1 |
| #define | THREAD_LOCK_WRITE 2 |
| #define | BLI_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER |
| #define | ThreadLocal(type) |
| #define | BLI_thread_local_create(name) |
| #define | BLI_thread_local_delete(name) |
| #define | BLI_thread_local_get(name) |
| #define | BLI_thread_local_set(name, value) |
Typedefs | |
| typedef pthread_mutex_t | ThreadMutex |
| typedef pthread_spinlock_t | SpinLock |
| typedef pthread_rwlock_t | ThreadRWMutex |
| typedef struct TicketMutex | TicketMutex |
| typedef pthread_cond_t | ThreadCondition |
| typedef struct ThreadQueue | ThreadQueue |
Enumerations | |
| enum | { LOCK_IMAGE = 0 , LOCK_DRAW_IMAGE , LOCK_VIEWER , LOCK_CUSTOM1 , LOCK_NODES , LOCK_MOVIECLIP , LOCK_COLORMANAGE , LOCK_FFTW , LOCK_VIEW3D } |
| #define BLENDER_MAX_THREADS 1024 |
For tables, button in UI, etc.
Definition at line 16 of file BLI_threads.h.
Referenced by arg_handle_threads_set(), BLI_rng_threaded_new(), BLI_task_parallel_thread_id(), ntreeShaderBeginExecTree_internal(), ntreeShaderEndExecTree_internal(), ntreeTexBeginExecTree_internal(), ntreeTexEndExecTree_internal(), project_paint_op(), rna_def_scene_render_data(), and tex_free_delegates().
| #define BLI_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER |
Definition at line 80 of file BLI_threads.h.
| #define BLI_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER |
Definition at line 120 of file BLI_threads.h.
| #define BLI_thread_local_create | ( | name | ) |
Definition at line 189 of file BLI_threads.h.
| #define BLI_thread_local_delete | ( | name | ) |
Definition at line 190 of file BLI_threads.h.
| #define BLI_thread_local_get | ( | name | ) |
Definition at line 191 of file BLI_threads.h.
| #define BLI_thread_local_set | ( | name, | |
| value ) |
Definition at line 192 of file BLI_threads.h.
| #define THREAD_LOCK_READ 1 |
Definition at line 117 of file BLI_threads.h.
Referenced by BLI_rw_mutex_lock(), ccgDM_get_vert_data_layer(), psys_update_particle_bvhtree(), RE_AcquireResultImage(), RE_AcquireResultImageViews(), RE_AcquireResultRead(), sph_evaluate_func(), and vfont_char_ensure_with_lock().
| #define THREAD_LOCK_WRITE 2 |
Definition at line 118 of file BLI_threads.h.
Referenced by ccgDM_get_vert_data_layer(), do_render_compositor(), do_render_sequencer(), fluid_modifier_reset_ex(), psys_update_particle_bvhtree(), RE_AcquireResultWrite(), RE_engine_render(), re_ensure_passes_allocated_thread_safe(), RE_InitState(), RE_ReadRenderResult(), render_init_from_main(), render_result_uncrop(), renderresult_set_passes_metadata(), vfont_char_ensure_with_lock(), and vfont_data_ensure_with_lock().
| #define ThreadLocal | ( | type | ) |
Definition at line 187 of file BLI_threads.h.
Definition at line 107 of file BLI_threads.h.
| typedef pthread_cond_t ThreadCondition |
Definition at line 148 of file BLI_threads.h.
| typedef pthread_mutex_t ThreadMutex |
Definition at line 79 of file BLI_threads.h.
| typedef struct ThreadQueue ThreadQueue |
Definition at line 161 of file BLI_threads.h.
| typedef pthread_rwlock_t ThreadRWMutex |
Definition at line 122 of file BLI_threads.h.
| typedef struct TicketMutex TicketMutex |
Definition at line 138 of file BLI_threads.h.
| anonymous enum |
Global Mutex Locks
One custom lock available now. can be extended.
| Enumerator | |
|---|---|
| LOCK_IMAGE | |
| LOCK_DRAW_IMAGE | |
| LOCK_VIEWER | |
| LOCK_CUSTOM1 | |
| LOCK_NODES | |
| LOCK_MOVIECLIP | |
| LOCK_COLORMANAGE | |
| LOCK_FFTW | |
| LOCK_VIEW3D | |
Definition at line 62 of file BLI_threads.h.
| int BLI_available_threads | ( | struct ListBase * | threadbase | ) |
Amount of available threads.
Definition at line 146 of file threads.cc.
References LISTBASE_FOREACH.
Referenced by ZstdWriteWrap::write().
| void BLI_condition_end | ( | ThreadCondition * | cond | ) |
Definition at line 600 of file threads.cc.
Referenced by ZstdWriteWrap::close(), IMB_thumb_locks_release(), and blender::seq::seq_prefetch_free().
| void BLI_condition_init | ( | ThreadCondition * | cond | ) |
Definition at line 575 of file threads.cc.
Referenced by IMB_thumb_locks_acquire(), ZstdWriteWrap::open(), blender::seq::seq_prefetch_start_ex(), and blender::ed::vse::sequencer_preview_add_sound().
| void BLI_condition_notify_all | ( | ThreadCondition * | cond | ) |
Definition at line 595 of file threads.cc.
Referenced by IMB_thumb_path_unlock().
| void BLI_condition_notify_one | ( | ThreadCondition * | cond | ) |
Definition at line 590 of file threads.cc.
Referenced by blender::ed::vse::free_read_sound_waveform_task(), blender::seq::prefetch_stop(), blender::seq::seq_prefetch_resume(), and blender::ed::vse::sequencer_preview_add_sound().
| void BLI_condition_wait | ( | ThreadCondition * | cond, |
| ThreadMutex * | mutex ) |
Definition at line 580 of file threads.cc.
References mutex.
Referenced by blender::ed::vse::preview_startjob(), and blender::seq::seq_prefetch_do_suspend().
| void BLI_condition_wait_global_mutex | ( | ThreadCondition * | cond, |
| int | type ) |
Definition at line 585 of file threads.cc.
References global_mutex_from_type().
Referenced by IMB_thumb_path_lock().
| ThreadMutex * BLI_mutex_alloc | ( | void | ) |
Definition at line 365 of file threads.cc.
References BLI_mutex_init(), MEM_callocN(), and mutex.
Referenced by blender::ed::vse::sequencer_preview_add_sound().
| void BLI_mutex_end | ( | ThreadMutex * | mutex | ) |
Definition at line 360 of file threads.cc.
References mutex.
Referenced by BLI_mutex_free(), BLI_spin_end(), ccgDM_release(), ZstdWriteWrap::close(), gpu_batch_presets_exit(), RE_engine_free(), blender::seq::seq_prefetch_free(), and BaseRender::~BaseRender().
| void BLI_mutex_free | ( | ThreadMutex * | mutex | ) |
Definition at line 372 of file threads.cc.
References BLI_mutex_end(), MEM_freeN(), and mutex.
Referenced by blender::ed::vse::free_preview_job().
| void BLI_mutex_init | ( | ThreadMutex * | mutex | ) |
Definition at line 340 of file threads.cc.
References mutex.
Referenced by BLI_mempool_create(), BLI_mutex_alloc(), BLI_spin_init(), getCCGDerivedMesh(), gpu_batch_presets_init(), ZstdWriteWrap::open(), RE_engine_create(), and blender::seq::seq_prefetch_start_ex().
| void BLI_mutex_lock | ( | ThreadMutex * | mutex | ) |
Definition at line 345 of file threads.cc.
References mutex.
Referenced by BLI_spin_lock(), ccgDM_copyFinalCornerEdgeArray(), engine_render_view_layer(), blender::ed::vse::free_read_sound_waveform_task(), gpu_batch_presets_register(), gpu_batch_presets_unregister(), IMB_colormanagement_color_picking_to_scene_linear_v3(), IMB_colormanagement_scene_linear_to_color_picking_v3(), mempool_asan_lock(), blender::ed::vse::preview_startjob(), RE_engine_draw_acquire(), RE_engine_gpu_context_enable(), RE_engine_gpu_context_lock(), RE_engine_update_render_passes(), blender::seq::seq_prefetch_do_suspend(), blender::ed::vse::sequencer_preview_add_sound(), and ZstdWriteWrap::write().
| bool BLI_mutex_trylock | ( | ThreadMutex * | mutex | ) |
Definition at line 355 of file threads.cc.
References mutex.
| void BLI_mutex_unlock | ( | ThreadMutex * | mutex | ) |
Definition at line 350 of file threads.cc.
References mutex.
Referenced by BLI_spin_unlock(), ccgDM_copyFinalCornerEdgeArray(), engine_render_view_layer(), blender::ed::vse::free_read_sound_waveform_task(), gpu_batch_presets_register(), gpu_batch_presets_unregister(), IMB_colormanagement_color_picking_to_scene_linear_v3(), IMB_colormanagement_scene_linear_to_color_picking_v3(), mempool_asan_unlock(), blender::ed::vse::preview_startjob(), RE_engine_draw_acquire(), RE_engine_draw_release(), RE_engine_gpu_context_disable(), RE_engine_gpu_context_unlock(), RE_engine_update_render_passes(), blender::seq::seq_prefetch_do_suspend(), blender::ed::vse::sequencer_preview_add_sound(), and ZstdWriteWrap::write().
| ThreadRWMutex * BLI_rw_mutex_alloc | ( | void | ) |
Definition at line 487 of file threads.cc.
References BLI_rw_mutex_init(), MEM_callocN(), and mutex.
Referenced by BKE_fluid_modifier_create_type_data(), and BKE_modifier_blend_read_data().
| void BLI_rw_mutex_end | ( | ThreadRWMutex * | mutex | ) |
Definition at line 482 of file threads.cc.
References mutex.
Referenced by BLI_rw_mutex_free(), ccgDM_release(), and BaseRender::~BaseRender().
| void BLI_rw_mutex_free | ( | ThreadRWMutex * | mutex | ) |
Definition at line 494 of file threads.cc.
References BLI_rw_mutex_end(), MEM_freeN(), and mutex.
Referenced by fluid_modifier_freeDomain().
| void BLI_rw_mutex_init | ( | ThreadRWMutex * | mutex | ) |
Definition at line 462 of file threads.cc.
References mutex.
Referenced by BLI_rw_mutex_alloc(), and getCCGDerivedMesh().
| void BLI_rw_mutex_lock | ( | ThreadRWMutex * | mutex, |
| int | mode ) |
Definition at line 467 of file threads.cc.
References mutex, and THREAD_LOCK_READ.
Referenced by ccgDM_get_vert_data_layer(), do_render_compositor(), do_render_sequencer(), fluid_modifier_reset_ex(), psys_update_particle_bvhtree(), RE_AcquireResultImage(), RE_AcquireResultImageViews(), RE_AcquireResultRead(), RE_AcquireResultWrite(), RE_engine_render(), re_ensure_passes_allocated_thread_safe(), RE_InitState(), RE_ReadRenderResult(), render_init_from_main(), render_result_uncrop(), renderresult_set_passes_metadata(), sph_evaluate_func(), vfont_char_ensure_with_lock(), and vfont_data_ensure_with_lock().
| void BLI_rw_mutex_unlock | ( | ThreadRWMutex * | mutex | ) |
Definition at line 477 of file threads.cc.
References mutex.
Referenced by ccgDM_get_vert_data_layer(), do_render_compositor(), do_render_sequencer(), fluid_modifier_reset_ex(), psys_update_particle_bvhtree(), RE_engine_render(), re_ensure_passes_allocated_thread_safe(), RE_InitState(), RE_ReadRenderResult(), RE_ReleaseResult(), RE_ReleaseResultImage(), RE_ReleaseResultImageViews(), render_init_from_main(), render_result_uncrop(), renderresult_set_passes_metadata(), sph_evaluate_func(), vfont_char_ensure_with_lock(), and vfont_data_ensure_with_lock().
| void BLI_spin_end | ( | SpinLock * | spin | ) |
Definition at line 445 of file threads.cc.
References BLI_mutex_end(), and UNUSED_VARS.
Referenced by BKE_autotrack_context_free(), BKE_main_destroy(), do_multires_bake(), dynamics_step(), ED_image_paint_tile_lock_end(), imb_mmap_lock_exit(), lineart_destroy_render_data(), lineart_end_bounding_area_recursive(), lineart_free_bounding_area_memory(), project_paint_end(), sound_free_data(), tracking_image_accessor_destroy(), tracks_map_free(), and blender::deg::Depsgraph::~Depsgraph().
| void BLI_spin_init | ( | SpinLock * | spin | ) |
Definition at line 391 of file threads.cc.
References BLI_mutex_init().
Referenced by BKE_autotrack_context_new(), BKE_main_init(), BKE_sound_new_file(), blender::deg::Depsgraph::Depsgraph(), do_multires_bake(), dynamics_step(), ED_image_paint_tile_lock_init(), imb_mmap_lock_init(), lineart_bounding_area_split(), lineart_create_render_buffer_v3(), lineart_main_bounding_area_make_initial(), lineart_main_try_generate_shadow_v3(), proj_paint_state_thread_init(), sound_blend_read_data(), sound_copy_data(), tracking_image_accessor_new(), and tracks_map_new().
| void BLI_spin_lock | ( | SpinLock * | spin | ) |
Definition at line 405 of file threads.cc.
References BLI_mutex_lock(), and long.
Referenced by BKE_autotrack_context_step(), BKE_autotrack_context_sync(), BKE_main_lock(), blender::ed::vse::clear_sound_waveform_loading_tag(), do_multires_bake_thread(), ED_image_paint_tile_push(), imb_mmap_lock(), lineart_bounding_area_link_triangle(), lineart_discard_segment(), lineart_geometry_object_load(), lineart_give_segment(), lineart_give_shadow_segment(), lineart_mem_acquire_thread(), lineart_occlusion_make_task_info(), lineart_schedule_new_triangle_task(), multires_bake_queue_next_tri(), project_paint_undo_subtiles(), tracks_map_merge(), update_courant_num(), and blender::ed::vse::waveform_job_start_if_needed().
| void BLI_spin_unlock | ( | SpinLock * | spin | ) |
Definition at line 430 of file threads.cc.
References BLI_mutex_unlock().
Referenced by BKE_autotrack_context_step(), BKE_autotrack_context_sync(), BKE_main_unlock(), blender::ed::vse::clear_sound_waveform_loading_tag(), do_multires_bake_thread(), ED_image_paint_tile_push(), imb_mmap_unlock(), lineart_bounding_area_link_triangle(), lineart_discard_segment(), lineart_geometry_object_load(), lineart_give_segment(), lineart_give_shadow_segment(), lineart_mem_acquire_thread(), lineart_occlusion_make_task_info(), lineart_schedule_new_triangle_task(), multires_bake_queue_next_tri(), project_paint_undo_subtiles(), tracks_map_merge(), update_courant_num(), and blender::ed::vse::waveform_job_start_if_needed().
| int BLI_system_num_threads_override_get | ( | void | ) |
Definition at line 294 of file threads.cc.
References threads_override_num.
Referenced by BKE_render_num_threads(), BLI_task_scheduler_init(), and OIIO_init().
| void BLI_system_num_threads_override_set | ( | int | num | ) |
Definition at line 289 of file threads.cc.
References num, and threads_override_num.
Referenced by arg_handle_threads_set().
| int BLI_system_thread_count | ( | void | ) |
Definition at line 253 of file threads.cc.
References CLAMP, len, LIKELY, RE_MAX_THREAD, and threads_override_num.
Referenced by BKE_render_num_threads(), BLI_task_scheduler_init(), blender::gpu::VKBackend::capabilities_init(), blender::fn::multi_function::compute_grain_size(), blender::array_utils::count_indices(), do_multires_bake(), blender::index_mask::IndexMask::from_indices(), blender::bke::calc_edges::get_parallel_maps_count(), imb_initopenexr(), blender::fftw::initialize_float(), ZstdWriteWrap::open(), and psys_tasks_create().
| int BLI_thread_is_main | ( | void | ) |
Definition at line 179 of file threads.cc.
References mainid.
Referenced by blender::gpu::GPUSecondaryContext::activate(), BKE_icon_geom_ensure(), BKE_icon_geom_from_file(), BKE_icon_geom_from_memory(), BKE_icon_get(), BKE_icon_gplayer_color_ensure(), BKE_icon_id_delete(), BKE_icon_id_ensure(), BKE_icons_free(), BKE_icons_init(), BKE_image_free_gputextures(), BKE_image_free_unused_gpu_textures(), BKE_previewimg_cached_ensure(), BKE_previewimg_cached_get(), BKE_previewimg_cached_release(), BKE_previewimg_cached_thumbnail_read(), BLI_change_working_dir(), BLT_translate(), BPY_context_update(), ctx_data_get(), ctx_wm_python_context_get(), blender::gpu::VKDevice::debug_print(), ContextShared::disable(), blender::draw::DebugDraw::display_to_view(), DRW_blender_gpu_render_context_enable(), DRW_gpu_context_activate(), DRW_gpu_context_destroy(), DRW_gpu_context_release(), DRW_system_gpu_render_context_enable(), ED_preview_ensure_dbase(), ED_render_id_flush_update(), ED_render_scene_update(), engine_depsgraph_free(), blender::render::Compositor::execute(), GPU_batch_preset_sphere(), GPU_batch_preset_sphere_wire(), blender::gpu::GPUSecondaryContext::GPUSecondaryContext(), icon_gplayer_color_ensure_create_icon(), icon_id_ensure_create_icon(), image_init_after_load(), blender::eevee::LightBake::LightBake(), RE_engine_gpu_context_create(), RE_FreeUnusedGPUResources(), RE_system_gpu_context_ensure(), RE_system_gpu_context_free(), blender::gpu::VKBackend::render_end(), blender::eevee::LightBake::update(), wm_file_write(), wm_job_end(), wm_surface_reset_drawable(), WM_system_gpu_context_create(), wm_window_events_process(), wm_window_reset_drawable(), blender::render::Compositor::~Compositor(), blender::gpu::GPUSecondaryContext::~GPUSecondaryContext(), and blender::eevee::LightBake::~LightBake().
| void BLI_thread_lock | ( | int | type | ) |
Definition at line 328 of file threads.cc.
References global_mutex_from_type().
Referenced by accessor_get_ibuf(), BKE_image_ensure_viewer_views(), BKE_movieclip_get_cache_segments(), BKE_movieclip_has_cached_frame(), BKE_movieclip_put_frame_if_possible(), colorfn(), blender::ed::space_node::draw_nodespace_back_pix(), image_acquire_ibuf(), image_get_render_result(), image_main_region_draw(), image_mipmap_test(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), IMB_display_buffer_acquire(), IMB_display_buffer_release(), imb_partial_display_buffer_update_ex(), IMB_thumb_locks_acquire(), IMB_thumb_locks_release(), IMB_thumb_path_lock(), IMB_thumb_path_unlock(), movieclip_build_proxy_ibuf(), movieclip_get_postprocessed_ibuf(), ntreeTexExecTree(), blender::render::Context::output_to_render_result(), project_paint_face_init(), view3d_stereo3d_setup(), and blender::render::Context::viewer_output_to_viewer_image().
| void BLI_thread_queue_free | ( | ThreadQueue * | queue | ) |
Definition at line 630 of file threads.cc.
References BLI_gsqueue_free(), ThreadQueue::finish_cond, MEM_freeN(), ThreadQueue::mutex, ThreadQueue::push_cond, and ThreadQueue::queue.
Referenced by filelist_cache_previews_free(), PreviewLoadJob::~PreviewLoadJob(), and TaskPool::~TaskPool().
| ThreadQueue * BLI_thread_queue_init | ( | void | ) |
Definition at line 616 of file threads.cc.
References BLI_gsqueue_new(), ThreadQueue::finish_cond, MEM_callocN(), ThreadQueue::mutex, ThreadQueue::push_cond, and ThreadQueue::queue.
Referenced by filelist_cache_preview_ensure_running(), PreviewLoadJob::PreviewLoadJob(), and TaskPool::TaskPool().
| bool BLI_thread_queue_is_empty | ( | ThreadQueue * | queue | ) |
Definition at line 757 of file threads.cc.
References BLI_gsqueue_is_empty(), ThreadQueue::mutex, and ThreadQueue::queue.
Referenced by filelist_cache_previews_update().
| int BLI_thread_queue_len | ( | ThreadQueue * | queue | ) |
Definition at line 746 of file threads.cc.
References BLI_gsqueue_len(), ThreadQueue::mutex, ThreadQueue::queue, and size().
| void BLI_thread_queue_nowait | ( | ThreadQueue * | queue | ) |
Definition at line 768 of file threads.cc.
References ThreadQueue::mutex, ThreadQueue::nowait, and ThreadQueue::push_cond.
Referenced by filelist_cache_previews_free().
| void * BLI_thread_queue_pop | ( | ThreadQueue * | queue | ) |
Definition at line 653 of file threads.cc.
References BLI_gsqueue_is_empty(), BLI_gsqueue_pop(), ThreadQueue::finish_cond, ThreadQueue::mutex, ThreadQueue::nowait, ThreadQueue::push_cond, and ThreadQueue::queue.
Referenced by filelist_cache_previews_update().
| void * BLI_thread_queue_pop_timeout | ( | ThreadQueue * | queue, |
| int | ms ) |
Definition at line 712 of file threads.cc.
References BLI_gsqueue_is_empty(), BLI_gsqueue_pop(), BLI_time_now_seconds(), ThreadQueue::finish_cond, ThreadQueue::mutex, ThreadQueue::nowait, ThreadQueue::push_cond, ThreadQueue::queue, and wait_timeout().
Referenced by filelist_cache_previews_clear(), blender::gpu::VKDevice::render_graph_new(), and blender::gpu::VKDevice::submission_runner().
| void BLI_thread_queue_push | ( | ThreadQueue * | queue, |
| void * | work ) |
Definition at line 642 of file threads.cc.
References BLI_gsqueue_push(), ThreadQueue::mutex, ThreadQueue::push_cond, and ThreadQueue::queue.
Referenced by blender::gpu::VKDevice::context_unregister(), filelist_cache_preview_runf(), filelist_cache_previews_push(), PreviewLoadJob::push_load_request(), blender::gpu::VKDevice::render_graph_submit(), and blender::gpu::VKDevice::submission_runner().
| void BLI_thread_queue_wait_finish | ( | ThreadQueue * | queue | ) |
Definition at line 779 of file threads.cc.
References BLI_gsqueue_is_empty(), ThreadQueue::finish_cond, ThreadQueue::mutex, and ThreadQueue::queue.
| void BLI_thread_unlock | ( | int | type | ) |
Definition at line 333 of file threads.cc.
References global_mutex_from_type().
Referenced by accessor_get_ibuf(), BKE_image_ensure_viewer_views(), BKE_image_release_ibuf(), BKE_movieclip_get_cache_segments(), BKE_movieclip_has_cached_frame(), BKE_movieclip_put_frame_if_possible(), colorfn(), blender::ed::space_node::draw_nodespace_back_pix(), image_main_region_draw(), image_mipmap_test(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), IMB_display_buffer_acquire(), IMB_display_buffer_release(), imb_partial_display_buffer_update_ex(), IMB_thumb_locks_acquire(), IMB_thumb_locks_release(), IMB_thumb_path_lock(), IMB_thumb_path_unlock(), movieclip_build_proxy_ibuf(), movieclip_get_postprocessed_ibuf(), ntreeTexExecTree(), blender::render::Context::output_to_render_result(), project_paint_face_init(), view3d_stereo3d_setup(), and blender::render::Context::viewer_output_to_viewer_image().
| void BLI_threadapi_exit | ( | void | ) |
Definition at line 119 of file threads.cc.
Referenced by blender::tests::ChangeWorkingDirectoryTest::TearDown(), BlendfileLoadingBaseTest::TearDownTestCase(), TEST(), TEST(), TEST(), and WM_exit_ex().
| void BLI_threadapi_init | ( | void | ) |
This is run once at startup.
Definition at line 114 of file threads.cc.
References mainid.
Referenced by main(), blender::tests::ChangeWorkingDirectoryTest::SetUp(), BlendfileLoadingBaseTest::SetUpTestCase(), blender::gpu::GPUTest::SetUpTestSuite(), TEST(), TEST(), and TEST().
| int BLI_threadpool_available_thread_index | ( | struct ListBase * | threadbase | ) |
Returns thread number, for sample patterns or threadsafe tables.
Definition at line 159 of file threads.cc.
References LISTBASE_FOREACH.
| void BLI_threadpool_clear | ( | struct ListBase * | threadbase | ) |
Definition at line 223 of file threads.cc.
References LISTBASE_FOREACH.
| void BLI_threadpool_end | ( | struct ListBase * | threadbase | ) |
Definition at line 234 of file threads.cc.
References BLI_freelistN(), BLI_listbase_is_empty(), and LISTBASE_FOREACH.
Referenced by ZstdWriteWrap::close(), do_multires_bake(), sb_cf_threads_run(), sb_sfesf_threads_run(), blender::seq::seq_prefetch_free(), wm_jobs_kill_job(), wm_jobs_timer(), and TaskPool::~TaskPool().
| void BLI_threadpool_init | ( | struct ListBase * | threadbase, |
| void *(* | do_thread )(void *), | ||
| int | tot ) |
| tot | When 0 only initializes malloc mutex in a safe way (see sequence.c) problem otherwise: scene render will kill of the mutex! |
Definition at line 121 of file threads.cc.
References atomic_fetch_and_add_u(), ThreadSlot::avail, BLI_addtail(), BLI_listbase_clear(), ThreadSlot::do_thread, MEM_callocN(), RE_MAX_THREAD, and thread_levels.
Referenced by do_multires_bake(), ZstdWriteWrap::open(), sb_cf_threads_run(), sb_sfesf_threads_run(), blender::seq::seq_prefetch_start_ex(), TaskPool::TaskPool(), and WM_jobs_start().
| void BLI_threadpool_insert | ( | struct ListBase * | threadbase, |
| void * | callerdata ) |
Definition at line 184 of file threads.cc.
References LISTBASE_FOREACH, printf, and tslot_thread_start().
Referenced by do_multires_bake(), sb_cf_threads_run(), sb_sfesf_threads_run(), blender::seq::seq_prefetch_start_ex(), WM_jobs_start(), and ZstdWriteWrap::write().
| void BLI_threadpool_remove | ( | struct ListBase * | threadbase, |
| void * | callerdata ) |
Definition at line 197 of file threads.cc.
References LISTBASE_FOREACH.
Referenced by blender::seq::seq_prefetch_free(), blender::seq::seq_prefetch_start_ex(), and ZstdWriteWrap::write().
| void BLI_threadpool_remove_index | ( | struct ListBase * | threadbase, |
| int | index ) |
Definition at line 208 of file threads.cc.
References LISTBASE_FOREACH.
| TicketMutex * BLI_ticket_mutex_alloc | ( | void | ) |
Definition at line 510 of file threads.cc.
References TicketMutex::cond, MEM_callocN(), and TicketMutex::mutex.
Referenced by ContextShared::ContextShared(), DRW_mutexes_init(), and WM_jobs_get().
| void BLI_ticket_mutex_free | ( | TicketMutex * | ticket | ) |
Definition at line 520 of file threads.cc.
References TicketMutex::cond, MEM_freeN(), and TicketMutex::mutex.
Referenced by DRW_mutexes_exit(), wm_job_free(), and ContextShared::~ContextShared().
| void BLI_ticket_mutex_lock | ( | TicketMutex * | ticket | ) |
Definition at line 552 of file threads.cc.
References ticket_mutex_lock().
Referenced by ContextShared::enable(), WM_job_main_thread_lock_acquire(), and wm_job_main_thread_yield().
| bool BLI_ticket_mutex_lock_check_recursive | ( | TicketMutex * | ticket | ) |
Definition at line 557 of file threads.cc.
References ticket_mutex_lock().
Referenced by DRW_lock_start(), and DRW_submission_start().
| void BLI_ticket_mutex_unlock | ( | TicketMutex * | ticket | ) |
Definition at line 562 of file threads.cc.
References TicketMutex::cond, TicketMutex::has_owner, TicketMutex::mutex, and TicketMutex::queue_head.
Referenced by ContextShared::disable(), DRW_lock_end(), DRW_submission_end(), WM_job_main_thread_lock_release(), and wm_job_main_thread_yield().