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,
 
)    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,
 
)    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,
 
)    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,
 
)    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 _alternative_mode(), _blendop_blendif_channel_mask_view_toggle(), _blendop_blendif_enter(), _blendop_blendif_leave(), _blendop_blendif_leave_delayed(), _blendop_blendif_sliders_callback(), _blendop_blendif_update_tab(), _delayed_history_commit(), _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(), _filelist_changed_callback(), _find_path_for_keys(), _finish_buffer_thread(), _imgid_to_rowid(), _insert_accel(), _lib_history_change_callback(), _lib_navigation_draw_callback(), _lua_job_progress(), _lua_job_valid(), _mouse_over_image_callback(), _move_in_grid(), _pop_undo(), _step_state(), _toast_log(), _ui_log_redraw_callback(), _ui_toast_redraw_callback(), _update_gui_backbuf(), 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_contains(), dt_cache_for_all(), dt_cache_get_with_caller(), dt_cache_remove(), 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_get_dev_closeup(), dt_control_get_dev_zoom(), dt_control_get_dev_zoom_scale(), dt_control_get_dev_zoom_x(), dt_control_get_dev_zoom_y(), 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_dev_closeup(), dt_control_set_dev_zoom(), dt_control_set_dev_zoom_scale(), dt_control_set_dev_zoom_x(), dt_control_set_dev_zoom_y(), 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_add_history_item_real(), dt_dev_distort_backtransform_plus(), dt_dev_distort_transform_plus(), dt_dev_history_auto_save(), dt_dev_history_compress(), dt_dev_load_image(), dt_dev_module_remove(), dt_dev_pixel_pipe_cache_auto_destroy_apply(), dt_dev_pixel_pipe_cache_remove_lru(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_entry_from_data(), dt_dev_pixelpipe_cache_get_existing(), dt_dev_pixelpipe_cache_get_hash_data(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_wrlock_entry(), dt_dev_pixelpipe_change(), dt_dev_pixelpipe_cleanup(), dt_dev_pop_history_items(), dt_dev_process_image_job(), dt_dev_process_preview_job(), dt_dev_reload_history_items(), dt_dev_reprocess_all(), dt_dev_wait_hash(), dt_dev_write_history(), dt_film_import1_create(), dt_film_import1_run(), dt_get_selected_files(), dt_gui_gtk_write_config(), dt_imageio_export_with_flags(), dt_imageio_open_rawspeed(), dt_import_init(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_cleanup_blending(), 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_rawspeed_load_meta(), dt_styles_apply_style_item(), dt_thumbnail_get_background_jobs(), dt_thumbnail_get_image_buffer(), dt_thumbtable_dispatch_over(), 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(), expose(), get_autoscale(), get_keys(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_post_expose(), gui_update(), hash_set_get(), 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.

◆ dt_pthread_mutex_unlock()

static int dt_pthread_mutex_unlock ( dt_pthread_mutex_t *  mutex)
inlinestatic

References mutex.

Referenced by _alternative_mode(), _blendop_blendif_channel_mask_view_toggle(), _blendop_blendif_enter(), _blendop_blendif_leave(), _blendop_blendif_leave_delayed(), _blendop_blendif_sliders_callback(), _blendop_blendif_update_tab(), _delayed_history_commit(), _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(), _filelist_changed_callback(), _find_path_for_keys(), _finish_buffer_thread(), _imgid_to_rowid(), _insert_accel(), _lib_history_change_callback(), _lib_navigation_draw_callback(), _lua_job_progress(), _lua_job_valid(), _mouse_over_image_callback(), _move_in_grid(), _pop_undo(), _step_state(), _toast_log(), _ui_log_redraw_callback(), _ui_toast_redraw_callback(), _update_gui_backbuf(), 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_contains(), dt_cache_for_all(), dt_cache_get_with_caller(), dt_cache_remove(), 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_get_dev_closeup(), dt_control_get_dev_zoom(), dt_control_get_dev_zoom_scale(), dt_control_get_dev_zoom_x(), dt_control_get_dev_zoom_y(), 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_dev_closeup(), dt_control_set_dev_zoom(), dt_control_set_dev_zoom_scale(), dt_control_set_dev_zoom_x(), dt_control_set_dev_zoom_y(), 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_add_history_item_real(), dt_dev_distort_backtransform_plus(), dt_dev_distort_transform_plus(), dt_dev_history_auto_save(), dt_dev_history_compress(), dt_dev_load_image(), dt_dev_module_remove(), dt_dev_pixel_pipe_cache_auto_destroy_apply(), dt_dev_pixel_pipe_cache_remove_lru(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_entry_from_data(), dt_dev_pixelpipe_cache_get_existing(), dt_dev_pixelpipe_cache_get_hash_data(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_wrlock_entry(), dt_dev_pixelpipe_change(), dt_dev_pixelpipe_cleanup(), dt_dev_pop_history_items(), dt_dev_process_image_job(), dt_dev_process_preview_job(), dt_dev_reload_history_items(), dt_dev_reprocess_all(), dt_dev_wait_hash(), dt_dev_write_history(), dt_film_import1_create(), dt_film_import1_run(), dt_get_selected_files(), dt_gui_gtk_write_config(), dt_imageio_export_with_flags(), dt_imageio_open_rawspeed(), dt_import_init(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_cleanup_blending(), 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_rawspeed_load_meta(), dt_styles_apply_style_item(), dt_thumbnail_get_background_jobs(), dt_thumbnail_get_image_buffer(), dt_thumbtable_dispatch_over(), 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(), expose(), get_autoscale(), get_keys(), gui_cleanup(), gui_cleanup(), gui_init(), gui_init(), gui_post_expose(), gui_update(), hash_set_get(), leave(), lens_autosearch_clicked(), lens_menusearch_clicked(), process(), process(), process_image(), reload_defaults(), store(), and Lock::~Lock().

◆ dt_pthread_setname()

void dt_pthread_setname ( const char *  name)

Variable Documentation

◆ mutex