FreeSWITCH API Documentation  1.7.0
Macros | Typedefs | Functions
Thread Mutex Routines
+ Collaboration diagram for Thread Mutex Routines:

Macros

#define SWITCH_MUTEX_DEFAULT   0x0
 
#define SWITCH_MUTEX_NESTED   0x1
 
#define SWITCH_MUTEX_UNNESTED   0x2
 

Typedefs

typedef struct apr_thread_mutex_t switch_mutex_t
 

Functions

switch_status_t switch_mutex_init (switch_mutex_t **lock, unsigned int flags, switch_memory_pool_t *pool)
 
switch_status_t switch_mutex_destroy (switch_mutex_t *lock)
 
switch_status_t switch_mutex_lock (switch_mutex_t *lock)
 
switch_status_t switch_mutex_unlock (switch_mutex_t *lock)
 
switch_status_t switch_mutex_trylock (switch_mutex_t *lock)
 

Detailed Description

Macro Definition Documentation

#define SWITCH_MUTEX_DEFAULT   0x0

Lock Flags platform-optimal lock behavior

Definition at line 317 of file switch_apr.h.

Referenced by switch_core_session_init(), and switch_mutex_init().

#define SWITCH_MUTEX_NESTED   0x1
#define SWITCH_MUTEX_UNNESTED   0x2

disable nested locks

Definition at line 319 of file switch_apr.h.

Typedef Documentation

typedef struct apr_thread_mutex_t switch_mutex_t

Opaque thread-local mutex structure

Definition at line 314 of file switch_apr.h.

Function Documentation

switch_status_t switch_mutex_destroy ( switch_mutex_t lock)

Destroy the mutex and free the memory associated with the lock.

Parameters
lockthe mutex to destroy.

Definition at line 280 of file switch_apr.c.

Referenced by switch_ssl_destroy_ssl_locks().

281 {
282  return apr_thread_mutex_destroy(lock);
283 }
switch_status_t switch_mutex_init ( switch_mutex_t **  lock,
unsigned int  flags,
switch_memory_pool_t pool 
)

Create and initialize a mutex that can be used to synchronize threads.

Parameters
lockthe memory address where the newly created mutex will be stored.
flagsOr'ed value of:
          SWITCH_THREAD_MUTEX_DEFAULT   platform-optimal lock behavior.
          SWITCH_THREAD_MUTEX_NESTED    enable nested (recursive) locks.
          SWITCH_THREAD_MUTEX_UNNESTED  disable nested locks (non-recursive).
poolthe pool from which to allocate the mutex.
Warning
Be cautious in using SWITCH_THREAD_MUTEX_DEFAULT. While this is the most optimial mutex based on a given platform's performance charateristics, it will behave as either a nested or an unnested lock.

Definition at line 270 of file switch_apr.c.

References SWITCH_MUTEX_DEFAULT, and SWITCH_MUTEX_NESTED.

Referenced by create_device_record(), create_handle(), inband_dtmf_generate_callback(), preprocess_callback(), record_callback(), speech_thread(), switch_channel_alloc(), switch_channel_global_init(), switch_console_init(), switch_core_codec_init_with_bitrate(), switch_core_init(), switch_core_media_activate_rtp(), switch_core_media_bug_add(), switch_core_media_init(), switch_core_memory_init(), switch_core_perform_file_open(), switch_core_port_allocator_new(), switch_core_session_init(), switch_core_session_request_uuid(), switch_core_session_start_video_thread(), switch_core_sqldb_start(), switch_event_init(), switch_frame_buffer_create(), switch_ivr_activate_unicast(), switch_ivr_dmachine_create(), switch_ivr_eavesdrop_session(), switch_ivr_enterprise_originate(), switch_ivr_originate(), switch_jb_create(), switch_live_array_create(), switch_loadable_module_init(), switch_log_init(), switch_media_handle_create(), SWITCH_MODULE_LOAD_FUNCTION(), SWITCH_MODULE_RUNTIME_FUNCTION(), switch_rtp_create(), switch_rtp_init(), switch_scheduler_task_thread_start(), switch_sql_queue_manager_init_name(), switch_ssl_init_ssl_locks(), switch_system_thread(), switch_xml_init(), and timer_init().

271 {
272 #ifdef WIN32
273  /* Old version of APR misunderstands mutexes. On Windows, mutexes are cross-process.
274  APR has no reason to not use critical sections instead of mutexes. */
275  if (flags == SWITCH_MUTEX_NESTED) flags = SWITCH_MUTEX_DEFAULT;
276 #endif
277  return apr_thread_mutex_create(lock, flags, pool);
278 }
#define SWITCH_MUTEX_DEFAULT
Definition: switch_apr.h:317
switch_memory_pool_t * pool
#define SWITCH_MUTEX_NESTED
Definition: switch_apr.h:318
switch_status_t switch_mutex_lock ( switch_mutex_t lock)

Acquire the lock for the given mutex. If the mutex is already locked, the current thread will be put to sleep until the lock becomes available.

Parameters
lockthe mutex on which to acquire the lock.

Definition at line 285 of file switch_apr.c.

Referenced by add_handle(), chat_queue_message(), chat_thread_start(), check_dispatch(), check_queue(), check_recv_payload(), del_handle(), do_chat_send(), do_flush(), do_trans(), drop_ts(), early_thread_run(), enterprise_originate_thread(), event_handler(), fetch_device_stats(), find_free_frame(), free_nodes(), generate_on_dtmf(), get_handle(), get_recv_payload(), handle_ice(), hide_node(), hide_nodes(), inband_dtmf_generate_callback(), jb_find_lowest_node(), jb_find_lowest_seq(), la_broadcast(), log_thread(), new_node(), next_cpu(), pool_thread(), process_device_hup(), record_callback(), recording_thread(), rtp_common_read(), sort_free_nodes(), speech_callback(), speech_thread(), sql_close(), switch_buffer_lock(), switch_buffer_trylock(), switch_cache_db_execute_sql(), switch_cache_db_execute_sql2str(), switch_cache_db_execute_sql_callback(), switch_cache_db_execute_sql_callback_err(), switch_cache_db_execute_sql_event_callback(), switch_cache_db_execute_sql_event_callback_err(), switch_cache_db_execute_sql_real(), switch_cache_db_persistant_execute(), switch_cache_db_persistant_execute_trans_full(), switch_cache_db_release_db_handle(), switch_cache_db_status(), switch_cache_db_test_reactive(), switch_channel_add_state_handler(), switch_channel_add_variable_var_check(), switch_channel_bind_device_state_handler(), switch_channel_caller_extension_masquerade(), switch_channel_check_device_state(), switch_channel_clear_app_flag_key(), switch_channel_clear_cap(), switch_channel_clear_device_record(), switch_channel_clear_flag(), switch_channel_clear_flag_recursive(), switch_channel_clear_private_flag(), switch_channel_clear_state_flag(), switch_channel_clear_state_handler(), switch_channel_dequeue_dtmf(), switch_channel_dtmf_lock(), switch_channel_event_set_basic_data(), switch_channel_event_set_data(), switch_channel_event_set_extended_data(), switch_channel_flip_cid(), switch_channel_flush_dtmf(), switch_channel_get_caller_extension(), switch_channel_get_caller_profile(), switch_channel_get_cap_string(), switch_channel_get_device_record(), switch_channel_get_flag_string(), switch_channel_get_originatee_caller_profile(), switch_channel_get_origination_caller_profile(), switch_channel_get_originator_caller_profile(), switch_channel_get_queued_extension(), switch_channel_get_scope_variables(), switch_channel_get_state_handler(), switch_channel_get_timetable(), switch_channel_get_variable_dup(), switch_channel_get_variables(), switch_channel_has_dtmf(), switch_channel_pass_callee_id(), switch_channel_perform_hangup(), switch_channel_perform_mark_answered(), switch_channel_perform_mark_pre_answered(), switch_channel_perform_mark_ring_ready_value(), switch_channel_perform_set_running_state(), switch_channel_perform_set_state(), switch_channel_queue_dtmf(), switch_channel_set_app_flag_key(), switch_channel_set_bridge_time(), switch_channel_set_caller_extension(), switch_channel_set_caller_profile(), switch_channel_set_cap_value(), switch_channel_set_device_id(), switch_channel_set_flag_recursive(), switch_channel_set_flag_value(), switch_channel_set_hangup_time(), switch_channel_set_hunt_caller_profile(), switch_channel_set_originatee_caller_profile(), switch_channel_set_origination_caller_profile(), switch_channel_set_originator_caller_profile(), switch_channel_set_private_flag(), switch_channel_set_profile_var(), switch_channel_set_scope_variables(), switch_channel_set_state_flag(), switch_channel_set_timestamps(), switch_channel_set_variable_name_printf(), switch_channel_set_variable_printf(), switch_channel_set_variable_var_check(), switch_channel_state_thread_lock(), switch_channel_step_caller_profile(), switch_channel_test_app_flag_key(), switch_channel_test_flag(), switch_channel_transfer_to_extension(), switch_channel_unbind_device_state_handler(), switch_channel_uninit(), switch_channel_variable_first(), switch_check_network_list_ip_token(), switch_cond_next(), switch_cond_yield(), switch_console_add_complete_func(), switch_console_del_complete_func(), switch_console_run_complete_func(), switch_core_add_state_handler(), switch_core_codec_control(), switch_core_codec_decode(), switch_core_codec_decode_video(), switch_core_codec_destroy(), switch_core_codec_encode(), switch_core_codec_encode_video(), switch_core_dbtype(), switch_core_dump_variables(), switch_core_file_command(), switch_core_get_secondary_recover_callback(), switch_core_hash_delete_locked(), switch_core_hash_find_locked(), switch_core_hash_insert_locked(), switch_core_media_add_payload_map(), switch_core_media_bug_flush(), switch_core_media_bug_inuse(), switch_core_media_bug_read(), switch_core_media_check_video_function(), switch_core_media_end_video_function(), switch_core_media_gen_local_sdp(), switch_core_media_get_video_file(), switch_core_media_lock_video_file(), switch_core_media_negotiate_sdp(), switch_core_media_read_frame(), switch_core_media_receive_message(), switch_core_media_set_codec(), switch_core_media_set_local_sdp(), switch_core_media_set_video_file(), switch_core_media_start_video_function(), switch_core_memory_reclaim(), switch_core_perform_alloc(), switch_core_perform_destroy_memory_pool(), switch_core_perform_new_memory_pool(), switch_core_perform_permanent_alloc(), switch_core_perform_permanent_strdup(), switch_core_perform_session_alloc(), switch_core_perform_session_strdup(), switch_core_perform_strdup(), switch_core_port_allocator_free_port(), switch_core_port_allocator_request_port(), switch_core_register_secondary_recover_callback(), switch_core_remove_state_handler(), switch_core_service_thread(), switch_core_session_ctl(), switch_core_session_event_send(), switch_core_session_findall(), switch_core_session_findall_matching_var(), switch_core_session_get_payload_code(), switch_core_session_hupall(), switch_core_session_hupall_endpoint(), switch_core_session_hupall_matching_var_ans(), switch_core_session_id_dec(), switch_core_session_lock_codec_read(), switch_core_session_lock_codec_write(), switch_core_session_message_send(), switch_core_session_perform_destroy(), switch_core_session_perform_force_locate(), switch_core_session_perform_locate(), switch_core_session_read_frame(), switch_core_session_request_uuid(), switch_core_session_reset(), switch_core_session_run(), switch_core_session_set_read_codec(), switch_core_session_set_real_read_codec(), switch_core_session_set_uuid(), switch_core_session_set_video_read_callback(), switch_core_session_set_write_codec(), switch_core_session_start_video_thread(), switch_core_session_sync_clock(), switch_core_session_thread_launch(), switch_core_session_thread_pool_launch(), switch_core_session_thread_pool_worker(), switch_core_session_uninit(), switch_core_session_unset_read_codec(), switch_core_session_unset_write_codec(), switch_core_session_video_read_callback(), switch_core_session_write_frame(), switch_core_sqldb_start_thread(), switch_core_sqldb_stop_thread(), switch_core_unregister_secondary_recover_callback(), switch_core_vsprintf(), switch_event_bind_removable(), switch_event_channel_broadcast(), switch_event_channel_deliver_thread(), switch_event_dispatch_thread(), switch_event_init(), switch_event_prep_for_delivery_detailed(), switch_event_queue_dispatch_event(), switch_event_shutdown(), switch_event_unbind(), switch_event_unbind_callback(), switch_frame_buffer_free(), switch_ivr_dmachine_feed(), switch_ivr_enterprise_originate(), switch_ivr_originate(), switch_ivr_preprocess_session(), switch_jb_get_frames(), switch_jb_get_packet(), switch_jb_get_packet_by_seq(), switch_jb_pop_nack(), switch_jb_put_packet(), switch_jb_reset(), switch_jb_set_frames(), switch_live_array_add(), switch_live_array_add_alias(), switch_live_array_bootstrap(), switch_live_array_clear(), switch_live_array_clear_alias(), switch_live_array_create(), switch_live_array_del(), switch_live_array_destroy(), switch_live_array_get(), switch_live_array_get_idx(), switch_live_array_lock(), switch_live_array_visible(), switch_load_network_lists(), switch_loadable_module_enumerate_loaded(), switch_loadable_module_exists(), switch_loadable_module_get_codec_interface(), switch_loadable_module_get_codecs(), switch_loadable_module_get_codecs_sorted(), switch_loadable_module_get_endpoint_interface(), switch_loadable_module_get_file_interface(), switch_loadable_module_process(), switch_loadable_module_runtime(), switch_loadable_module_unload_module(), switch_loadable_module_unprocess(), switch_log_bind_logger(), switch_log_unbind_logger(), SWITCH_MODULE_RUNTIME_FUNCTION(), SWITCH_MODULE_SHUTDOWN_FUNCTION(), switch_rtp_activate_ice(), switch_rtp_break(), switch_rtp_clear_flag(), switch_rtp_dequeue_dtmf(), switch_rtp_destroy(), switch_rtp_get_stats(), switch_rtp_has_dtmf(), switch_rtp_kill_socket(), switch_rtp_new(), switch_rtp_ready(), switch_rtp_release_port(), switch_rtp_request_port(), switch_rtp_set_end_port(), switch_rtp_set_flag(), switch_rtp_set_payload_map(), switch_rtp_set_remote_address(), switch_rtp_set_start_port(), switch_rtp_shutdown(), switch_rtp_write_frame(), switch_rtp_zerocopy_read_frame(), switch_scheduler_add_task(), switch_scheduler_del_task_group(), switch_scheduler_del_task_id(), switch_sql_queue_manager_pause(), switch_sql_queue_manager_push(), switch_sql_queue_manager_push_confirm(), switch_sql_queue_manager_resume(), switch_sql_queue_manager_size(), switch_ssl_ssl_lock_callback(), switch_system_thread(), switch_user_sql_thread(), switch_uuid_get(), switch_xml_clear_user_cache(), switch_xml_destroy(), switch_xml_free(), switch_xml_locate_user_cache(), switch_xml_open_root(), switch_xml_parse_file(), switch_xml_root(), switch_xml_set_open_root_function(), switch_xml_set_root(), switch_xml_user_cache(), system_thread(), task_thread_loop(), thin_frames(), thread_launch_failure(), timer_destroy(), timer_init(), timer_next(), video_helper_thread(), and video_write_thread().

286 {
287  return apr_thread_mutex_lock(lock);
288 }
switch_status_t switch_mutex_trylock ( switch_mutex_t lock)

Attempt to acquire the lock for the given mutex. If the mutex has already been acquired, the call returns immediately with APR_EBUSY. Note: it is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine if the return value was APR_EBUSY, for portability reasons.

Parameters
lockthe mutex on which to attempt the lock acquiring.

Definition at line 295 of file switch_apr.c.

Referenced by careful_set(), get_handle(), qm_wake(), speech_callback(), sql_close(), switch_cache_db_status(), switch_channel_state_thread_trylock(), switch_channel_try_dtmf_lock(), switch_core_media_read_frame(), switch_core_media_read_lock_unlock(), switch_core_session_read_frame(), switch_core_session_wake_session_thread(), switch_core_session_wake_video_thread(), switch_core_session_write_frame(), switch_core_session_write_video_frame(), switch_ivr_dmachine_ping(), and SWITCH_MODULE_RUNTIME_FUNCTION().

296 {
297  return apr_thread_mutex_trylock(lock);
298 }
switch_status_t switch_mutex_unlock ( switch_mutex_t lock)

Release the lock for the given mutex.

Parameters
lockthe mutex from which to release the lock.

Definition at line 290 of file switch_apr.c.

Referenced by add_handle(), careful_set(), chat_queue_message(), chat_thread_start(), check_dispatch(), check_queue(), check_recv_payload(), del_handle(), do_chat_send(), do_flush(), do_trans(), drop_ts(), early_thread_run(), enterprise_originate_thread(), event_handler(), fetch_device_stats(), find_free_frame(), free_nodes(), generate_on_dtmf(), get_handle(), get_recv_payload(), handle_ice(), hide_node(), hide_nodes(), inband_dtmf_generate_callback(), jb_find_lowest_node(), jb_find_lowest_seq(), la_broadcast(), log_thread(), new_node(), next_cpu(), pool_thread(), process_device_hup(), qm_wake(), record_callback(), recording_thread(), rtp_common_read(), sort_free_nodes(), speech_callback(), speech_thread(), sql_close(), switch_buffer_unlock(), switch_cache_db_execute_sql(), switch_cache_db_execute_sql2str(), switch_cache_db_execute_sql_callback(), switch_cache_db_execute_sql_callback_err(), switch_cache_db_execute_sql_event_callback(), switch_cache_db_execute_sql_event_callback_err(), switch_cache_db_execute_sql_real(), switch_cache_db_persistant_execute(), switch_cache_db_persistant_execute_trans_full(), switch_cache_db_release_db_handle(), switch_cache_db_status(), switch_cache_db_test_reactive(), switch_channel_add_state_handler(), switch_channel_add_variable_var_check(), switch_channel_bind_device_state_handler(), switch_channel_caller_extension_masquerade(), switch_channel_check_device_state(), switch_channel_clear_app_flag_key(), switch_channel_clear_cap(), switch_channel_clear_device_record(), switch_channel_clear_flag(), switch_channel_clear_flag_recursive(), switch_channel_clear_private_flag(), switch_channel_clear_state_flag(), switch_channel_clear_state_handler(), switch_channel_dequeue_dtmf(), switch_channel_dtmf_unlock(), switch_channel_event_set_basic_data(), switch_channel_event_set_data(), switch_channel_event_set_extended_data(), switch_channel_flip_cid(), switch_channel_flush_dtmf(), switch_channel_get_caller_extension(), switch_channel_get_caller_profile(), switch_channel_get_cap_string(), switch_channel_get_flag_string(), switch_channel_get_originatee_caller_profile(), switch_channel_get_origination_caller_profile(), switch_channel_get_originator_caller_profile(), switch_channel_get_queued_extension(), switch_channel_get_scope_variables(), switch_channel_get_state_handler(), switch_channel_get_timetable(), switch_channel_get_variable_dup(), switch_channel_get_variables(), switch_channel_has_dtmf(), switch_channel_pass_callee_id(), switch_channel_perform_hangup(), switch_channel_perform_mark_answered(), switch_channel_perform_mark_pre_answered(), switch_channel_perform_mark_ring_ready_value(), switch_channel_perform_set_running_state(), switch_channel_perform_set_state(), switch_channel_queue_dtmf(), switch_channel_release_device_record(), switch_channel_set_app_flag_key(), switch_channel_set_bridge_time(), switch_channel_set_caller_extension(), switch_channel_set_caller_profile(), switch_channel_set_cap_value(), switch_channel_set_device_id(), switch_channel_set_flag_recursive(), switch_channel_set_flag_value(), switch_channel_set_hangup_time(), switch_channel_set_hunt_caller_profile(), switch_channel_set_originatee_caller_profile(), switch_channel_set_origination_caller_profile(), switch_channel_set_originator_caller_profile(), switch_channel_set_private_flag(), switch_channel_set_profile_var(), switch_channel_set_scope_variables(), switch_channel_set_state_flag(), switch_channel_set_timestamps(), switch_channel_set_variable_name_printf(), switch_channel_set_variable_printf(), switch_channel_set_variable_var_check(), switch_channel_state_thread_unlock(), switch_channel_step_caller_profile(), switch_channel_test_app_flag_key(), switch_channel_test_flag(), switch_channel_transfer_to_extension(), switch_channel_unbind_device_state_handler(), switch_channel_uninit(), switch_channel_variable_first(), switch_channel_variable_last(), switch_check_network_list_ip_token(), switch_cond_next(), switch_cond_yield(), switch_console_add_complete_func(), switch_console_del_complete_func(), switch_console_run_complete_func(), switch_core_add_state_handler(), switch_core_codec_control(), switch_core_codec_decode(), switch_core_codec_decode_video(), switch_core_codec_destroy(), switch_core_codec_encode(), switch_core_codec_encode_video(), switch_core_dbtype(), switch_core_dump_variables(), switch_core_file_command(), switch_core_get_secondary_recover_callback(), switch_core_hash_delete_locked(), switch_core_hash_find_locked(), switch_core_hash_insert_locked(), switch_core_media_add_payload_map(), switch_core_media_bug_flush(), switch_core_media_bug_inuse(), switch_core_media_bug_read(), switch_core_media_check_video_function(), switch_core_media_end_video_function(), switch_core_media_gen_local_sdp(), switch_core_media_get_video_file(), switch_core_media_negotiate_sdp(), switch_core_media_read_frame(), switch_core_media_read_lock_unlock(), switch_core_media_receive_message(), switch_core_media_set_codec(), switch_core_media_set_local_sdp(), switch_core_media_set_video_file(), switch_core_media_start_video_function(), switch_core_media_unlock_video_file(), switch_core_memory_reclaim(), switch_core_perform_alloc(), switch_core_perform_destroy_memory_pool(), switch_core_perform_new_memory_pool(), switch_core_perform_permanent_alloc(), switch_core_perform_permanent_strdup(), switch_core_perform_session_alloc(), switch_core_perform_session_strdup(), switch_core_perform_strdup(), switch_core_port_allocator_free_port(), switch_core_port_allocator_request_port(), switch_core_register_secondary_recover_callback(), switch_core_remove_state_handler(), switch_core_service_thread(), switch_core_session_ctl(), switch_core_session_event_send(), switch_core_session_findall(), switch_core_session_findall_matching_var(), switch_core_session_get_payload_code(), switch_core_session_hupall(), switch_core_session_hupall_endpoint(), switch_core_session_hupall_matching_var_ans(), switch_core_session_id_dec(), switch_core_session_message_send(), switch_core_session_perform_destroy(), switch_core_session_perform_force_locate(), switch_core_session_perform_locate(), switch_core_session_read_frame(), switch_core_session_request_uuid(), switch_core_session_reset(), switch_core_session_run(), switch_core_session_set_read_codec(), switch_core_session_set_real_read_codec(), switch_core_session_set_uuid(), switch_core_session_set_video_read_callback(), switch_core_session_set_write_codec(), switch_core_session_start_video_thread(), switch_core_session_sync_clock(), switch_core_session_thread_launch(), switch_core_session_thread_pool_launch(), switch_core_session_thread_pool_worker(), switch_core_session_uninit(), switch_core_session_unlock_codec_read(), switch_core_session_unlock_codec_write(), switch_core_session_unset_read_codec(), switch_core_session_unset_write_codec(), switch_core_session_video_read_callback(), switch_core_session_wake_session_thread(), switch_core_session_wake_video_thread(), switch_core_session_write_frame(), switch_core_session_write_video_frame(), switch_core_sqldb_start_thread(), switch_core_sqldb_stop_thread(), switch_core_unregister_secondary_recover_callback(), switch_core_vsprintf(), switch_event_bind_removable(), switch_event_channel_broadcast(), switch_event_channel_deliver_thread(), switch_event_dispatch_thread(), switch_event_init(), switch_event_prep_for_delivery_detailed(), switch_event_queue_dispatch_event(), switch_event_shutdown(), switch_event_unbind(), switch_event_unbind_callback(), switch_frame_buffer_free(), switch_ivr_dmachine_feed(), switch_ivr_dmachine_ping(), switch_ivr_enterprise_originate(), switch_ivr_originate(), switch_ivr_preprocess_session(), switch_jb_get_frames(), switch_jb_get_packet(), switch_jb_get_packet_by_seq(), switch_jb_pop_nack(), switch_jb_put_packet(), switch_jb_reset(), switch_jb_set_frames(), switch_live_array_add(), switch_live_array_add_alias(), switch_live_array_bootstrap(), switch_live_array_clear(), switch_live_array_clear_alias(), switch_live_array_create(), switch_live_array_del(), switch_live_array_destroy(), switch_live_array_get(), switch_live_array_get_idx(), switch_live_array_unlock(), switch_live_array_visible(), switch_load_network_lists(), switch_loadable_module_enumerate_loaded(), switch_loadable_module_exists(), switch_loadable_module_get_codec_interface(), switch_loadable_module_get_codecs(), switch_loadable_module_get_codecs_sorted(), switch_loadable_module_get_endpoint_interface(), switch_loadable_module_get_file_interface(), switch_loadable_module_process(), switch_loadable_module_runtime(), switch_loadable_module_unload_module(), switch_loadable_module_unprocess(), switch_log_bind_logger(), switch_log_unbind_logger(), SWITCH_MODULE_RUNTIME_FUNCTION(), SWITCH_MODULE_SHUTDOWN_FUNCTION(), switch_rtp_activate_ice(), switch_rtp_break(), switch_rtp_clear_flag(), switch_rtp_dequeue_dtmf(), switch_rtp_destroy(), switch_rtp_get_stats(), switch_rtp_has_dtmf(), switch_rtp_kill_socket(), switch_rtp_new(), switch_rtp_ready(), switch_rtp_release_port(), switch_rtp_request_port(), switch_rtp_set_end_port(), switch_rtp_set_flag(), switch_rtp_set_payload_map(), switch_rtp_set_remote_address(), switch_rtp_set_start_port(), switch_rtp_shutdown(), switch_rtp_write_frame(), switch_rtp_zerocopy_read_frame(), switch_scheduler_add_task(), switch_scheduler_del_task_group(), switch_scheduler_del_task_id(), switch_sql_queue_manager_pause(), switch_sql_queue_manager_push(), switch_sql_queue_manager_push_confirm(), switch_sql_queue_manager_resume(), switch_sql_queue_manager_size(), switch_ssl_ssl_lock_callback(), switch_system_thread(), switch_user_sql_thread(), switch_uuid_get(), switch_xml_clear_user_cache(), switch_xml_destroy(), switch_xml_free(), switch_xml_locate_user_cache(), switch_xml_open_root(), switch_xml_parse_file(), switch_xml_root(), switch_xml_set_open_root_function(), switch_xml_set_root(), switch_xml_user_cache(), system_thread(), task_thread_loop(), thin_frames(), thread_launch_failure(), timer_destroy(), timer_init(), timer_next(), video_helper_thread(), and video_write_thread().

291 {
292  return apr_thread_mutex_unlock(lock);
293 }