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 dependency graph for dtpthread.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define dt_pthread_rwlock_t   pthread_rwlock_t
 
#define dt_pthread_rwlock_init   pthread_rwlock_init
 
#define dt_pthread_rwlock_destroy   pthread_rwlock_destroy
 
#define dt_pthread_rwlock_unlock   pthread_rwlock_unlock
 
#define dt_pthread_rwlock_rdlock   pthread_rwlock_rdlock
 
#define dt_pthread_rwlock_wrlock   pthread_rwlock_wrlock
 
#define dt_pthread_rwlock_tryrdlock   pthread_rwlock_tryrdlock
 
#define dt_pthread_rwlock_trywrlock   pthread_rwlock_trywrlock
 
#define dt_pthread_rwlock_rdlock_with_caller(A, B, C)   pthread_rwlock_rdlock(A)
 
#define dt_pthread_rwlock_wrlock_with_caller(A, B, C)   pthread_rwlock_wrlock(A)
 
#define dt_pthread_rwlock_tryrdlock_with_caller(A, B, C)   pthread_rwlock_tryrdlock(A)
 
#define dt_pthread_rwlock_trywrlock_with_caller(A, B, C)   pthread_rwlock_trywrlock(A)
 

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_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_destroy

#define dt_pthread_rwlock_destroy   pthread_rwlock_destroy

◆ dt_pthread_rwlock_init

#define dt_pthread_rwlock_init   pthread_rwlock_init

◆ dt_pthread_rwlock_rdlock

#define dt_pthread_rwlock_rdlock   pthread_rwlock_rdlock

◆ dt_pthread_rwlock_rdlock_with_caller

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

◆ dt_pthread_rwlock_t

#define dt_pthread_rwlock_t   pthread_rwlock_t

◆ dt_pthread_rwlock_tryrdlock

#define dt_pthread_rwlock_tryrdlock   pthread_rwlock_tryrdlock

◆ dt_pthread_rwlock_tryrdlock_with_caller

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

◆ dt_pthread_rwlock_trywrlock

#define dt_pthread_rwlock_trywrlock   pthread_rwlock_trywrlock

◆ dt_pthread_rwlock_trywrlock_with_caller

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

◆ dt_pthread_rwlock_unlock

#define dt_pthread_rwlock_unlock   pthread_rwlock_unlock

◆ dt_pthread_rwlock_wrlock

#define dt_pthread_rwlock_wrlock   pthread_rwlock_wrlock

◆ dt_pthread_rwlock_wrlock_with_caller

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

Function Documentation

◆ CAPABILITY()

CAPABILITY ( "mutex"  )

◆ 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 
)

◆ dt_pthread_mutex_BAD_lock()

static int dt_pthread_mutex_BAD_lock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

◆ dt_pthread_mutex_BAD_trylock()

static int dt_pthread_mutex_BAD_trylock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

◆ dt_pthread_mutex_BAD_unlock()

static int dt_pthread_mutex_BAD_unlock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

◆ dt_pthread_mutex_destroy()

◆ dt_pthread_mutex_init()

◆ dt_pthread_mutex_lock()

static int dt_pthread_mutex_lock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

Referenced by _accels_tooltip_query_hook(), _alternative_mode(), _arena_alloc_with_defrag(), _async_commit_idle(), _backend_worker_on_idle(), _backend_worker_process_stroke_end(), _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_has_device_payload(), _cache_lookup_existing(), _cache_try_rekey_reuse_locked(), _cancel_async_commit(), _drawlayer_fullres_worker_main(), _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_image_info_changed_callback(), _dt_selection_changed_callback(), _dt_thumbtable_empty_list(), _enqueue_event(), _enqueue_finished_stroke(), _enqueue_input(), _filelist_changed_callback(), _find_path_for_keys(), _finish_buffer_thread(), _free_cache_entry(), _get_image_buffer(), _has_shortcut(), _image_cache_reload_from_db(), _image_cache_write_history_hash(), _imgid_to_rowid(), _insert_accel(), _lua_job_progress(), _lua_job_valid(), _mouse_over_image_callback(), _move_in_grid(), _pause_worker(), _resume_worker(), _rt_workers_active(), _rt_workers_any_active(), _step_state(), _stop_worker(), _thumb_draw_image(), _thumbtable_clone_lut(), _toast_log(), _ui_log_redraw_callback(), _ui_toast_redraw_callback(), _update_manager_information(), _wait_fullres_idle(), _wait_worker_idle(), _write_timestamp_get(), _write_timestamp_set_now(), blend_color_picker_apply(), camera_autosearch_clicked(), camera_menusearch_clicked(), commit_params(), destroy_pref(), 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_job_get_state(), dt_control_job_set_state(), dt_control_job_wait(), 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_darkroom_pipeline(), dt_dev_pixel_pipe_cache_remove_lru(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_cache_flush_clmem(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_writable(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_for_host_ptr(), dt_dev_pixelpipe_cache_rekey(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_process(), 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_drawlayer_worker_seal_for_commit(), dt_film_import1_create(), dt_film_import1_run(), 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_cleanup(), dt_imageio_open_rawspeed(), 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_lua_init_lock(), dt_lua_lock_internal(), dt_lua_unlock_internal(), dt_masks_get_lock_mode(), dt_masks_set_lock_mode(), dt_pixel_cache_clmem_flush(), dt_pixel_cache_clmem_get(), dt_pixel_cache_clmem_put(), dt_pixel_cache_clmem_ref(), dt_pixel_cache_clmem_remove(), dt_pixel_cache_clmem_unref(), dt_pixelpipe_cache_alloc_align_cache_impl(), dt_pixelpipe_cache_free_align_cache(), dt_rawspeed_load_meta(), dt_thumbnail_destroy(), dt_thumbnail_get_image_buffer(), dt_thumbtable_dispatch_over(), dt_thumbtable_get_thumbnail_info(), dt_thumbtable_key_pressed_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_update(), enter(), expose(), get_autoscale(), get_keys(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_update(), leave(), lens_autosearch_clicked(), lens_menusearch_clicked(), Lock::Lock(), process(), process(), process_image(), reload_defaults(), and store().

◆ dt_pthread_mutex_trylock()

static int dt_pthread_mutex_trylock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

Referenced by dt_dev_pixelpipe_cache_flush_old().

◆ dt_pthread_mutex_unlock()

static int dt_pthread_mutex_unlock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

Referenced by _accels_tooltip_query_hook(), _alternative_mode(), _arena_alloc_with_defrag(), _async_commit_idle(), _backend_worker_on_idle(), _backend_worker_process_stroke_end(), _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_has_device_payload(), _cache_lookup_existing(), _cache_try_rekey_reuse_locked(), _cancel_async_commit(), _drawlayer_fullres_worker_main(), _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_image_info_changed_callback(), _dt_selection_changed_callback(), _dt_thumbtable_empty_list(), _enqueue_event(), _enqueue_finished_stroke(), _enqueue_input(), _filelist_changed_callback(), _find_path_for_keys(), _finish_buffer_thread(), _free_cache_entry(), _get_image_buffer(), _has_shortcut(), _image_cache_reload_from_db(), _image_cache_write_history_hash(), _imgid_to_rowid(), _insert_accel(), _lua_job_progress(), _lua_job_valid(), _mouse_over_image_callback(), _move_in_grid(), _pause_worker(), _resume_worker(), _rt_workers_active(), _rt_workers_any_active(), _step_state(), _stop_worker(), _thumb_draw_image(), _thumbtable_clone_lut(), _toast_log(), _ui_log_redraw_callback(), _ui_toast_redraw_callback(), _update_manager_information(), _wait_fullres_idle(), _wait_worker_idle(), _write_timestamp_get(), _write_timestamp_set_now(), blend_color_picker_apply(), camera_autosearch_clicked(), camera_menusearch_clicked(), commit_params(), destroy_pref(), 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_job_get_state(), dt_control_job_set_state(), dt_control_job_wait(), 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_darkroom_pipeline(), dt_dev_pixel_pipe_cache_remove_lru(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_cache_flush_clmem(), dt_dev_pixelpipe_cache_flush_old(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_writable(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_for_host_ptr(), dt_dev_pixelpipe_cache_rekey(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_process(), 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_drawlayer_worker_seal_for_commit(), dt_film_import1_create(), dt_film_import1_run(), 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_cleanup(), dt_imageio_open_rawspeed(), 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_lua_init_lock(), dt_lua_lock_internal(), dt_lua_unlock_internal(), dt_masks_get_lock_mode(), dt_masks_set_lock_mode(), dt_pixel_cache_clmem_flush(), dt_pixel_cache_clmem_get(), dt_pixel_cache_clmem_put(), dt_pixel_cache_clmem_ref(), dt_pixel_cache_clmem_remove(), dt_pixel_cache_clmem_unref(), dt_pixelpipe_cache_alloc_align_cache_impl(), dt_pixelpipe_cache_free_align_cache(), dt_rawspeed_load_meta(), dt_thumbnail_destroy(), dt_thumbnail_get_image_buffer(), dt_thumbtable_dispatch_over(), dt_thumbtable_get_thumbnail_info(), dt_thumbtable_key_pressed_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_update(), enter(), expose(), get_autoscale(), get_keys(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_update(), leave(), lens_autosearch_clicked(), lens_menusearch_clicked(), process(), process(), process_image(), reload_defaults(), store(), and Lock::~Lock().

◆ dt_pthread_setname()

Variable Documentation

◆ mutex