Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
dtpthread.h File Reference
#include "external/ThreadSafetyAnalysis.h"
#include <assert.h>
#include <errno.h>
#include <float.h>
#include <glib.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
+ Include dependency graph for dtpthread.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_pthread_rwlock_t
 

Macros

#define dt_pthread_rwlock_rdlock_with_caller(A, B, C)   dt_pthread_rwlock_rdlock(A)
 
#define dt_pthread_rwlock_wrlock_with_caller(A, B, C)   dt_pthread_rwlock_wrlock(A)
 
#define dt_pthread_rwlock_tryrdlock_with_caller(A, B, C)   dt_pthread_rwlock_tryrdlock(A)
 
#define dt_pthread_rwlock_trywrlock_with_caller(A, B, C)   dt_pthread_rwlock_trywrlock(A)
 

Typedefs

typedef struct dt_pthread_rwlock_t dt_pthread_rwlock_t
 

Functions

struct CAPABILITY ("mutex") dt_pthread_mutex_t
 
static int dt_pthread_mutex_init (dt_pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)
 
static int dt_pthread_mutex_lock (dt_pthread_mutex_t *mutex) ACQUIRE(mutex) NO_THREAD_SAFETY_ANALYSIS
 
static int dt_pthread_mutex_trylock (dt_pthread_mutex_t *mutex) TRY_ACQUIRE(0
 
static int dt_pthread_mutex_unlock (dt_pthread_mutex_t *mutex) RELEASE(mutex) NO_THREAD_SAFETY_ANALYSIS
 
static int dt_pthread_mutex_destroy (dt_pthread_mutex_t *mutex)
 
static int dt_pthread_cond_wait (pthread_cond_t *cond, dt_pthread_mutex_t *mutex)
 
static int dt_pthread_rwlock_init (dt_pthread_rwlock_t *lock, const pthread_rwlockattr_t *attr)
 
static void dt_pthread_rwlock_set_name (dt_pthread_rwlock_t *lock, const char *name)
 
static int dt_pthread_rwlock_destroy (dt_pthread_rwlock_t *lock)
 
static int dt_pthread_rwlock_unlock (dt_pthread_rwlock_t *rwlock)
 
void _dt_pthread_rwlock_diag_log_rdlock (const char *name, unsigned long tid, double wait_ms, unsigned long prev_holder, gboolean prev_was_writer)
 
void _dt_pthread_rwlock_diag_log_wrlock (const char *name, unsigned long tid, double wait_ms, unsigned long prev_holder, gboolean prev_was_writer, int active_readers, unsigned long oldest_reader_tid, double oldest_reader_age_ms)
 
static double _dt_pthread_rwlock_diag_now (void)
 
static int dt_pthread_rwlock_rdlock (dt_pthread_rwlock_t *rwlock)
 
static int dt_pthread_rwlock_wrlock (dt_pthread_rwlock_t *rwlock)
 
static int dt_pthread_rwlock_tryrdlock (dt_pthread_rwlock_t *rwlock)
 
static int dt_pthread_rwlock_trywrlock (dt_pthread_rwlock_t *rwlock)
 
static int dt_pthread_mutex_BAD_lock (dt_pthread_mutex_t *mutex)
 
static int dt_pthread_mutex_BAD_trylock (dt_pthread_mutex_t *mutex)
 
static int dt_pthread_mutex_BAD_unlock (dt_pthread_mutex_t *mutex)
 
int dt_pthread_create (pthread_t *thread, void *(*start_routine)(void *), void *arg, const gboolean realtime)
 
void dt_pthread_setname (const char *name)
 

Variables

static int mutex
 

Macro Definition Documentation

◆ dt_pthread_rwlock_rdlock_with_caller

#define dt_pthread_rwlock_rdlock_with_caller (   A,
  B,
  C 
)    dt_pthread_rwlock_rdlock(A)

Definition at line 594 of file dtpthread.h.

◆ dt_pthread_rwlock_tryrdlock_with_caller

#define dt_pthread_rwlock_tryrdlock_with_caller (   A,
  B,
  C 
)    dt_pthread_rwlock_tryrdlock(A)

Definition at line 596 of file dtpthread.h.

◆ dt_pthread_rwlock_trywrlock_with_caller

#define dt_pthread_rwlock_trywrlock_with_caller (   A,
  B,
  C 
)    dt_pthread_rwlock_trywrlock(A)

Definition at line 597 of file dtpthread.h.

◆ dt_pthread_rwlock_wrlock_with_caller

#define dt_pthread_rwlock_wrlock_with_caller (   A,
  B,
  C 
)    dt_pthread_rwlock_wrlock(A)

Definition at line 595 of file dtpthread.h.

Typedef Documentation

◆ dt_pthread_rwlock_t

Function Documentation

◆ _dt_pthread_rwlock_diag_log_rdlock()

void _dt_pthread_rwlock_diag_log_rdlock ( const char *  name,
unsigned long  tid,
double  wait_ms,
unsigned long  prev_holder,
gboolean  prev_was_writer 
)

Definition at line 132 of file dtpthread.c.

References DT_DEBUG_HISTORY, dt_print(), and name.

Referenced by dt_pthread_rwlock_rdlock().

◆ _dt_pthread_rwlock_diag_log_wrlock()

void _dt_pthread_rwlock_diag_log_wrlock ( const char *  name,
unsigned long  tid,
double  wait_ms,
unsigned long  prev_holder,
gboolean  prev_was_writer,
int  active_readers,
unsigned long  oldest_reader_tid,
double  oldest_reader_age_ms 
)

Definition at line 139 of file dtpthread.c.

References DT_DEBUG_HISTORY, dt_print(), and name.

Referenced by dt_pthread_rwlock_wrlock().

◆ _dt_pthread_rwlock_diag_now()

static double _dt_pthread_rwlock_diag_now ( void  )
inlinestatic

Definition at line 495 of file dtpthread.h.

Referenced by dt_pthread_rwlock_rdlock(), and dt_pthread_rwlock_wrlock().

◆ CAPABILITY()

CAPABILITY ( "mutex"  )

Definition at line 1 of file dtpthread.h.

◆ dt_pthread_cond_wait()

static int dt_pthread_cond_wait ( pthread_cond_t *  cond,
dt_pthread_mutex_t *  mutex 
)
inlinestatic

◆ dt_pthread_create()

int dt_pthread_create ( pthread_t *  thread,
void *(*)(void *)  start_routine,
void arg,
const gboolean  realtime 
)

Definition at line 51 of file dtpthread.c.

References dt_conf_get_int(), param, and WANTED_THREADS_STACK_SIZE.

Referenced by _start_worker(), and dt_control_jobs_init().

◆ dt_pthread_mutex_BAD_lock()

static int dt_pthread_mutex_BAD_lock ( dt_pthread_mutex_t *  mutex)
inlinestatic

Definition at line 602 of file dtpthread.h.

References mutex.

◆ dt_pthread_mutex_BAD_trylock()

static int dt_pthread_mutex_BAD_trylock ( dt_pthread_mutex_t *  mutex)
inlinestatic

Definition at line 607 of file dtpthread.h.

References mutex.

Referenced by _free_cache_entry(), and dt_opencl_lock_device().

◆ dt_pthread_mutex_BAD_unlock()

static int dt_pthread_mutex_BAD_unlock ( dt_pthread_mutex_t *  mutex)
inlinestatic

Definition at line 612 of file dtpthread.h.

References mutex.

Referenced by _free_cache_entry(), and dt_opencl_unlock_device().

◆ dt_pthread_mutex_destroy()

◆ dt_pthread_mutex_init()

◆ dt_pthread_mutex_lock()

static int dt_pthread_mutex_lock ( dt_pthread_mutex_t *  mutex)
inlinestatic

Definition at line 374 of file dtpthread.h.

References mutex.

Referenced by _accels_tooltip_query_hook(), _alternative_mode(), _arena_alloc_with_defrag(), _backend_worker_on_idle(), _backend_worker_process_stroke_end(), _blendop_blendif_channel_display_toggled(), _blendop_blendif_channel_mask_view_toggle(), _blendop_blendif_enter(), _blendop_blendif_leave(), _blendop_blendif_leave_delayed(), _blendop_blendif_sliders_callback(), _blendop_blendif_update_tab(), _cache_entry_clmem_flush_device(), _cache_entry_clmem_flush_host_pinned_locked(), _cache_entry_clmem_has_host_pinned_locked(), _cache_entry_materialize_host_data_locked(), _cache_lookup_existing(), _cache_try_rekey_reuse_locked(), _cache_try_restore_device_payload(), _cancel_async_commit(), _cleanup(), _drawlayer_worker_main(), _dt_collection_lut(), _dt_ctl_log_message_timeout_callback(), _dt_ctl_toast_message_timeout_callback(), _dt_delete_dialog_main_thread(), _dt_delete_file_display_modal_dialog(), _dt_dev_pixelpipe_cache_wait_ready_callback(), _dt_image_info_changed_callback(), _dt_thumbtable_empty_list(), _enqueue_event(), _enqueue_input(), _filelist_changed_callback(), _find_non_virtual_shortcut(), _find_path_for_keys(), _finish_buffer_thread(), _folder_survey_deactivate(), _folder_survey_imported(), _folder_survey_job_cleanup(), _folder_survey_job_run(), _folder_survey_offer_pending_import(), _folder_survey_reschedule(), _folder_survey_scan(), _free_cache_entry(), _get_image_buffer(), _grid_handle_key(), _image_cache_reload_from_db(), _image_cache_write_history_hash(), _imgid_to_rowid(), _insert_accel(), _log_push(), _mipmap_subcache_collect(), _mouse_over_image_callback(), _pause_worker(), _pixel_cache_clmem_get(), _pixel_cache_clmem_put(), _pixel_cache_clmem_remove(), _refresh_highlights(), _resume_worker(), _resync_pipe_with_history(), _rt_workers_active(), _rt_workers_any_active(), _scan_still_valid(), _step_state(), _stop_worker(), _studio_dev_teardown(), _thumb_draw_image(), _thumbtable_clone_lut(), _thumbtable_drag_set_icon(), _toast_log(), _ui_log_redraw_callback(), _ui_toast_redraw_callback(), _update_manager_information(), _view_surface_commit_main(), _view_surface_fetch_job_run(), _wait_worker_idle(), _write_timestamp_get(), _write_timestamp_set_now(), auto_advance(), camera_autosearch_clicked(), camera_menusearch_clicked(), commit_params(), distort_mask(), dt_accels_cleanup(), dt_accels_connect_accels(), dt_accels_new_action_shortcut(), dt_accels_new_virtual_instance_shortcut(), dt_accels_new_virtual_shortcut(), dt_accels_new_widget_shortcut(), dt_accels_remove_accel(), dt_accels_remove_shortcut(), dt_cache_arena_alloc(), dt_cache_arena_cleanup(), dt_cache_arena_free(), dt_cache_arena_stats(), dt_cache_contains(), dt_cache_for_all(), dt_cache_get_with_caller(), dt_cache_remove(), dt_cache_seed(), dt_cache_testget(), dt_capabilities_add(), dt_capabilities_remove(), dt_conf_all_string_entries(), dt_conf_get_var(), dt_conf_key_exists(), dt_conf_set_if_not_overridden(), dt_control_add_job(), dt_control_add_job_res(), dt_control_button_pressed(), dt_control_expose(), dt_control_flush_jobs_queue(), dt_control_get_keyboard_over_id(), dt_control_get_mouse_over_id(), dt_control_get_selected_files(), dt_control_job_get_state(), dt_control_job_set_state(), dt_control_job_wait(), dt_control_jobs_drain(), dt_control_jobs_init(), dt_control_log(), dt_control_log_busy_enter(), dt_control_log_busy_leave(), dt_control_progress_cancel(), dt_control_progress_cancellable(), dt_control_progress_create(), dt_control_progress_destroy(), dt_control_progress_get_gui_data(), dt_control_progress_get_message(), dt_control_progress_get_progress(), dt_control_progress_has_progress_bar(), dt_control_progress_make_cancellable(), dt_control_progress_set_gui_data(), dt_control_progress_set_message(), dt_control_progress_set_progress(), dt_control_quit(), dt_control_run_job(), dt_control_run_job_res(), dt_control_running(), dt_control_schedule_job(), dt_control_set_keyboard_over_id(), dt_control_set_mouse_over_id(), dt_control_shutdown(), dt_control_toast_busy_enter(), dt_control_toast_busy_leave(), dt_control_work(), dt_control_work_res(), dt_control_worker_kicker(), dt_dev_cleanup(), dt_dev_darkroom_pipeline(), dt_dev_pixel_pipe_cache_remove_lru(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_borrow_cl_payload(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_cache_flush_clmem(), dt_dev_pixelpipe_cache_flush_clmem_for_pipe(), dt_dev_pixelpipe_cache_flush_entry_clmem(), dt_dev_pixelpipe_cache_flush_host_pinned_image(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_entries_stats(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_entry_by_data(), dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_cache_get_usage(), dt_dev_pixelpipe_cache_get_writable(), dt_dev_pixelpipe_cache_invalidate_hashes(), dt_dev_pixelpipe_cache_peek_gui(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_by_hash(), dt_dev_pixelpipe_cache_ref_entry_for_host_ptr(), dt_dev_pixelpipe_cache_rekey(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_return_cl_payload(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_cache_wait_cleanup(), dt_dev_pixelpipe_process(), dt_dev_pixelpipe_process_rec(), dt_dev_transient_params_active(), dt_dev_transient_params_clear(), dt_dev_transient_params_get(), dt_dev_transient_params_set(), dt_drawlayer_runtime_manager_note_buffer_lock(), dt_drawlayer_runtime_manager_note_sidecar_io(), dt_drawlayer_runtime_manager_note_thread(), dt_drawlayer_worker_get_snapshot(), dt_drawlayer_worker_pending_dab_count(), dt_drawlayer_worker_request_commit(), dt_drawlayer_worker_reset_backend_path(), dt_drawlayer_worker_reset_live_publish(), dt_drawlayer_worker_reset_stroke(), dt_film_import1_create(), dt_film_import1_run(), dt_folder_survey_absorb_new_files(), dt_folder_survey_cleanup(), dt_folder_survey_count_new_files(), dt_folder_survey_halt(), dt_folder_survey_init(), dt_folder_survey_is_active(), dt_folder_survey_propose_resume(), dt_folder_survey_start(), dt_folder_survey_stop(), dt_get_selected_files(), dt_gui_gtk_write_config(), dt_gui_throttle_record_runtime(), dt_history_check_module_exists(), dt_history_cleanup(), dt_history_db_delete_history(), dt_history_db_delete_masks_history(), dt_history_db_foreach_auto_preset_row(), dt_history_db_foreach_history_row(), dt_history_db_get_autoapply_ioporder_params(), dt_history_db_get_next_history_num(), dt_history_db_shift_history_nums(), dt_history_db_write_history_item(), dt_history_get_end(), dt_history_set_end(), dt_image_altered(), dt_image_cache_get_entries_stats(), dt_image_cache_get_usage(), dt_image_cleanup(), dt_imageio_open_rawspeed(), dt_import_cleanup(), dt_import_init(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_cleanup_blending(), dt_iop_gui_cleanup_blending_body(), dt_iop_gui_enter_critical_section(), dt_iop_gui_init_blending(), dt_iop_gui_update_blendif(), dt_masks_get_lock_mode(), dt_masks_set_lock_mode(), dt_opencl_apply_scheduling_profile(), dt_opencl_create_kernel(), dt_opencl_free_kernel(), dt_opencl_lock_device(), dt_opencl_memory_statistics(), dt_pixelpipe_cache_alloc_align_cache_impl(), dt_pixelpipe_cache_free_align_cache(), dt_rawspeed_load_meta(), dt_supervisor_backbuf(), dt_supervisor_cache_wait(), dt_supervisor_cacheline_create(), dt_supervisor_cacheline_delete(), dt_supervisor_cacheline_read(), dt_supervisor_cleanup(), dt_supervisor_describe(), dt_supervisor_events_clear(), dt_supervisor_events_count(), dt_supervisor_events_snapshot(), dt_supervisor_events_snapshot_since(), dt_supervisor_form(), dt_supervisor_history(), dt_supervisor_image(), dt_supervisor_mipmap(), dt_supervisor_node(), dt_supervisor_rekey(), dt_supervisor_thumbnail(), dt_supervisor_widget(), dt_thumbnail_destroy(), dt_thumbnail_get_image_buffer(), dt_thumbnail_image_refresh_real(), dt_thumbtable_dispatch_over(), dt_thumbtable_get_thumbnail_info(), dt_thumbtable_key_pressed_grid(), dt_thumbtable_move_in_grid(), dt_thumbtable_offset_zoom(), dt_thumbtable_refresh_thumbnail_real(), dt_thumbtable_scroll_to_imgid(), dt_thumbtable_select_all(), dt_thumbtable_select_range(), dt_thumbtable_set_draw_group_borders(), dt_thumbtable_set_overlays_mode(), dt_thumbtable_stop(), dt_thumbtable_update(), dt_view_image_get_surface_async(), dt_view_image_surface_fetcher_cleanup(), dt_view_image_surface_fetcher_invalidate(), enter(), expose(), get_autoscale(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_update(), leave(), lens_autosearch_clicked(), lens_menusearch_clicked(), Lock::Lock(), process(), process(), process_cl(), reload_defaults(), and store().

◆ dt_pthread_mutex_trylock()

static int dt_pthread_mutex_trylock ( dt_pthread_mutex_t *  mutex)
inlinestatic

◆ dt_pthread_mutex_unlock()

static int dt_pthread_mutex_unlock ( dt_pthread_mutex_t *  mutex)
inlinestatic

Definition at line 384 of file dtpthread.h.

References mutex.

Referenced by _accels_tooltip_query_hook(), _alternative_mode(), _arena_alloc_with_defrag(), _backend_worker_on_idle(), _backend_worker_process_stroke_end(), _blendop_blendif_channel_display_toggled(), _blendop_blendif_channel_mask_view_toggle(), _blendop_blendif_enter(), _blendop_blendif_leave(), _blendop_blendif_leave_delayed(), _blendop_blendif_sliders_callback(), _blendop_blendif_update_tab(), _cache_entry_clmem_flush_device(), _cache_entry_clmem_flush_host_pinned_locked(), _cache_entry_clmem_has_host_pinned_locked(), _cache_entry_materialize_host_data_locked(), _cache_lookup_existing(), _cache_try_rekey_reuse_locked(), _cache_try_restore_device_payload(), _cancel_async_commit(), _cleanup(), _drawlayer_worker_main(), _dt_collection_lut(), _dt_ctl_log_message_timeout_callback(), _dt_ctl_toast_message_timeout_callback(), _dt_delete_dialog_main_thread(), _dt_delete_file_display_modal_dialog(), _dt_dev_pixelpipe_cache_wait_ready_callback(), _dt_image_info_changed_callback(), _dt_thumbtable_empty_list(), _enqueue_event(), _enqueue_input(), _filelist_changed_callback(), _find_non_virtual_shortcut(), _find_path_for_keys(), _finish_buffer_thread(), _folder_survey_deactivate(), _folder_survey_imported(), _folder_survey_job_cleanup(), _folder_survey_job_run(), _folder_survey_offer_pending_import(), _folder_survey_reschedule(), _folder_survey_scan(), _free_cache_entry(), _get_image_buffer(), _grid_handle_key(), _image_cache_reload_from_db(), _image_cache_write_history_hash(), _imgid_to_rowid(), _insert_accel(), _log_push(), _mipmap_subcache_collect(), _mouse_over_image_callback(), _pause_worker(), _pixel_cache_clmem_get(), _pixel_cache_clmem_put(), _pixel_cache_clmem_remove(), _refresh_highlights(), _resume_worker(), _resync_pipe_with_history(), _rt_workers_active(), _rt_workers_any_active(), _scan_still_valid(), _step_state(), _stop_worker(), _studio_dev_teardown(), _thumb_draw_image(), _thumbtable_clone_lut(), _thumbtable_drag_set_icon(), _toast_log(), _ui_log_redraw_callback(), _ui_toast_redraw_callback(), _update_manager_information(), _view_surface_commit_main(), _view_surface_fetch_job_run(), _wait_worker_idle(), _write_timestamp_get(), _write_timestamp_set_now(), auto_advance(), camera_autosearch_clicked(), camera_menusearch_clicked(), commit_params(), distort_mask(), dt_accels_cleanup(), dt_accels_connect_accels(), dt_accels_new_action_shortcut(), dt_accels_new_virtual_instance_shortcut(), dt_accels_new_virtual_shortcut(), dt_accels_new_widget_shortcut(), dt_accels_remove_accel(), dt_accels_remove_shortcut(), dt_cache_arena_alloc(), dt_cache_arena_cleanup(), dt_cache_arena_free(), dt_cache_arena_stats(), dt_cache_contains(), dt_cache_for_all(), dt_cache_get_with_caller(), dt_cache_remove(), dt_cache_seed(), dt_cache_testget(), dt_capabilities_add(), dt_capabilities_remove(), dt_conf_all_string_entries(), dt_conf_get_var(), dt_conf_key_exists(), dt_conf_set_if_not_overridden(), dt_control_add_job(), dt_control_add_job_res(), dt_control_button_pressed(), dt_control_expose(), dt_control_flush_jobs_queue(), dt_control_get_keyboard_over_id(), dt_control_get_mouse_over_id(), dt_control_get_selected_files(), dt_control_job_get_state(), dt_control_job_set_state(), dt_control_job_wait(), dt_control_jobs_drain(), dt_control_jobs_init(), dt_control_log(), dt_control_log_busy_enter(), dt_control_log_busy_leave(), dt_control_progress_cancel(), dt_control_progress_cancellable(), dt_control_progress_create(), dt_control_progress_destroy(), dt_control_progress_get_gui_data(), dt_control_progress_get_message(), dt_control_progress_get_progress(), dt_control_progress_has_progress_bar(), dt_control_progress_make_cancellable(), dt_control_progress_set_gui_data(), dt_control_progress_set_message(), dt_control_progress_set_progress(), dt_control_quit(), dt_control_run_job(), dt_control_run_job_res(), dt_control_running(), dt_control_schedule_job(), dt_control_set_keyboard_over_id(), dt_control_set_mouse_over_id(), dt_control_shutdown(), dt_control_toast_busy_enter(), dt_control_toast_busy_leave(), dt_control_work(), dt_control_work_res(), dt_control_worker_kicker(), dt_dev_cleanup(), dt_dev_darkroom_pipeline(), dt_dev_pixel_pipe_cache_remove_lru(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_borrow_cl_payload(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_cache_flush_clmem(), dt_dev_pixelpipe_cache_flush_clmem_for_pipe(), dt_dev_pixelpipe_cache_flush_entry_clmem(), dt_dev_pixelpipe_cache_flush_host_pinned_image(), dt_dev_pixelpipe_cache_flush_old(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_entries_stats(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_entry_by_data(), dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_cache_get_usage(), dt_dev_pixelpipe_cache_get_writable(), dt_dev_pixelpipe_cache_invalidate_hashes(), dt_dev_pixelpipe_cache_peek_gui(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_by_hash(), dt_dev_pixelpipe_cache_ref_entry_for_host_ptr(), dt_dev_pixelpipe_cache_rekey(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_return_cl_payload(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_cache_wait_cleanup(), dt_dev_pixelpipe_cache_wait_dump_pending(), dt_dev_pixelpipe_process(), dt_dev_pixelpipe_process_rec(), dt_dev_transient_params_active(), dt_dev_transient_params_clear(), dt_dev_transient_params_get(), dt_dev_transient_params_set(), dt_drawlayer_runtime_manager_note_buffer_lock(), dt_drawlayer_runtime_manager_note_sidecar_io(), dt_drawlayer_runtime_manager_note_thread(), dt_drawlayer_worker_get_snapshot(), dt_drawlayer_worker_pending_dab_count(), dt_drawlayer_worker_request_commit(), dt_drawlayer_worker_reset_backend_path(), dt_drawlayer_worker_reset_live_publish(), dt_drawlayer_worker_reset_stroke(), dt_film_import1_create(), dt_film_import1_run(), dt_folder_survey_absorb_new_files(), dt_folder_survey_cleanup(), dt_folder_survey_count_new_files(), dt_folder_survey_halt(), dt_folder_survey_init(), dt_folder_survey_is_active(), dt_folder_survey_propose_resume(), dt_folder_survey_start(), dt_folder_survey_stop(), dt_get_selected_files(), dt_gui_gtk_write_config(), dt_gui_throttle_record_runtime(), dt_history_check_module_exists(), dt_history_cleanup(), dt_history_db_delete_history(), dt_history_db_delete_masks_history(), dt_history_db_foreach_auto_preset_row(), dt_history_db_foreach_history_row(), dt_history_db_get_autoapply_ioporder_params(), dt_history_db_get_next_history_num(), dt_history_db_shift_history_nums(), dt_history_db_write_history_item(), dt_history_get_end(), dt_history_set_end(), dt_image_altered(), dt_image_cache_get_entries_stats(), dt_image_cache_get_usage(), dt_image_cleanup(), dt_imageio_open_rawspeed(), dt_import_cleanup(), dt_import_init(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_cleanup_blending(), dt_iop_gui_cleanup_blending_body(), dt_iop_gui_init_blending(), dt_iop_gui_leave_critical_section(), dt_iop_gui_update_blendif(), dt_masks_get_lock_mode(), dt_masks_set_lock_mode(), dt_opencl_apply_scheduling_profile(), dt_opencl_create_kernel(), dt_opencl_free_kernel(), dt_opencl_lock_device(), dt_opencl_memory_statistics(), dt_pixelpipe_cache_alloc_align_cache_impl(), dt_pixelpipe_cache_free_align_cache(), dt_rawspeed_load_meta(), dt_supervisor_backbuf(), dt_supervisor_cache_wait(), dt_supervisor_cacheline_create(), dt_supervisor_cacheline_delete(), dt_supervisor_cacheline_read(), dt_supervisor_cleanup(), dt_supervisor_describe(), dt_supervisor_events_clear(), dt_supervisor_events_count(), dt_supervisor_events_snapshot(), dt_supervisor_events_snapshot_since(), dt_supervisor_form(), dt_supervisor_history(), dt_supervisor_image(), dt_supervisor_mipmap(), dt_supervisor_node(), dt_supervisor_rekey(), dt_supervisor_thumbnail(), dt_supervisor_widget(), dt_thumbnail_destroy(), dt_thumbnail_get_image_buffer(), dt_thumbnail_image_refresh_real(), dt_thumbtable_dispatch_over(), dt_thumbtable_get_thumbnail_info(), dt_thumbtable_key_pressed_grid(), dt_thumbtable_move_in_grid(), dt_thumbtable_offset_zoom(), dt_thumbtable_refresh_thumbnail_real(), dt_thumbtable_scroll_to_imgid(), dt_thumbtable_select_all(), dt_thumbtable_select_range(), dt_thumbtable_set_draw_group_borders(), dt_thumbtable_set_overlays_mode(), dt_thumbtable_stop(), dt_thumbtable_update(), dt_view_image_get_surface_async(), dt_view_image_surface_fetcher_cleanup(), dt_view_image_surface_fetcher_invalidate(), enter(), expose(), get_autoscale(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_update(), leave(), lens_autosearch_clicked(), lens_menusearch_clicked(), process(), process(), process_cl(), reload_defaults(), store(), and Lock::~Lock().

◆ dt_pthread_rwlock_destroy()

static int dt_pthread_rwlock_destroy ( dt_pthread_rwlock_t lock)
inlinestatic

◆ dt_pthread_rwlock_init()

static int dt_pthread_rwlock_init ( dt_pthread_rwlock_t lock,
const pthread_rwlockattr_t *  attr 
)
inlinestatic

◆ dt_pthread_rwlock_rdlock()

◆ dt_pthread_rwlock_set_name()

static void dt_pthread_rwlock_set_name ( dt_pthread_rwlock_t lock,
const char *  name 
)
inlinestatic

Definition at line 442 of file dtpthread.h.

References lock, and name.

Referenced by dt_dev_init().

◆ dt_pthread_rwlock_tryrdlock()

static int dt_pthread_rwlock_tryrdlock ( dt_pthread_rwlock_t rwlock)
inlinestatic

◆ dt_pthread_rwlock_trywrlock()

◆ dt_pthread_rwlock_unlock()

static int dt_pthread_rwlock_unlock ( dt_pthread_rwlock_t rwlock)
inlinestatic

Definition at line 452 of file dtpthread.h.

References dt_pthread_rwlock_t::active_reader_count, dt_pthread_rwlock_t::lock, dt_pthread_rwlock_t::name, dt_pthread_rwlock_t::oldest_active_reader_since, dt_pthread_rwlock_t::oldest_active_reader_tid, dt_pthread_rwlock_t::writer, and dt_pthread_rwlock_t::writer_depth.

Referenced by _cache_get_oldest(), _dt_dev_history_compress_internal(), _dt_dev_write_history_job_run(), _for_each_remove(), _for_each_remove_old(), _history_apply_history_end(), _history_show_module_for_end(), _lib_history_change_callback(), _lib_snapshot_capture_state(), _non_thread_safe_cache_remove(), _pop_undo(), _render_surface(), _studio_dev_teardown(), _update_iop_visibility(), commit_params(), dt_cache_gc(), dt_cache_release_with_caller(), dt_cache_remove(), dt_colorrings_apply_rgb_lut(), dt_database_end_transaction_batch(), dt_database_release_transaction_debug(), dt_database_rollback_transaction(), dt_dev_add_history_item_real(), dt_dev_cleanup(), dt_dev_history_cow_touch(), dt_dev_history_gui_update(), dt_dev_history_truncate(), dt_dev_history_undo_end_record(), dt_dev_history_undo_start_record(), dt_dev_load_image(), dt_dev_masks_update_hash(), dt_dev_module_remove(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_flush_clmem(), dt_dev_pixelpipe_cache_peek(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_wrlock_entry(), dt_dev_pixelpipe_change(), dt_dev_pop_history_items(), dt_dev_reload_history_items(), dt_dev_write_history(), dt_drawlayer_commit_dabs(), dt_masks_append_form(), dt_masks_change_form_gui(), dt_masks_cow_touch(), dt_masks_create_ext(), dt_masks_get_from_id(), dt_masks_gui_form_save_creation(), dt_masks_iop_combo_populate(), dt_masks_remove_form(), dt_masks_replace_current_forms(), dt_masks_snapshot_current_forms(), dt_styles_apply_style_item(), gui_focus(), gui_update(), leave(), and post_history_commit().

◆ dt_pthread_rwlock_wrlock()

◆ dt_pthread_setname()

void dt_pthread_setname ( const char *  name)

Variable Documentation

◆ mutex