#include <pthread.h>
#include <netdb.h>
#include <time.h>
#include <sys/param.h>
#include "asterisk/logger.h"
#include "asterisk/inline_api.h"
Go to the source code of this file.
Defines | |
#define | __AST_MUTEX_DEFINE(scope, mutex, init_val, track) scope ast_mutex_t mutex = init_val |
#define | __AST_RWLOCK_DEFINE(scope, rwlock) |
#define | __MTX_PROF(a) return pthread_mutex_lock((a)) |
#define | ast_channel_lock(x) ast_mutex_lock(&x->lock) |
#define | ast_channel_trylock(x) ast_mutex_trylock(&x->lock) |
#define | ast_channel_unlock(x) ast_mutex_unlock(&x->lock) |
#define | AST_MUTEX_DEFINE_STATIC(mutex) __AST_MUTEX_DEFINE(static, mutex, AST_MUTEX_INIT_VALUE, 1) |
#define | AST_MUTEX_DEFINE_STATIC_NOTRACKING(mutex) __AST_MUTEX_DEFINE(static, mutex, AST_MUTEX_INIT_VALUE_NOTRACKING, 0) |
#define | ast_mutex_init_notracking(m) ast_mutex_init(m) |
#define | AST_MUTEX_INIT_VALUE ((ast_mutex_t) PTHREAD_MUTEX_INIT_VALUE) |
#define | AST_MUTEX_INIT_VALUE_NOTRACKING ((ast_mutex_t) PTHREAD_MUTEX_INIT_VALUE) |
#define | AST_MUTEX_INITIALIZER __use_AST_MUTEX_DEFINE_STATIC_rather_than_AST_MUTEX_INITIALIZER__ |
#define | AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE |
#define | ast_pthread_mutex_init(pmutex, a) pthread_mutex_init(pmutex,a) |
#define | AST_PTHREADT_NULL (pthread_t) -1 |
#define | AST_PTHREADT_STOP (pthread_t) -2 |
#define | AST_RWLOCK_DEFINE_STATIC(rwlock) __AST_RWLOCK_DEFINE(static, rwlock) |
#define | AST_RWLOCK_INIT_VALUE NULL |
#define | DEADLOCK_AVOIDANCE(lock) |
#define | gethostbyname __gethostbyname__is__not__reentrant__use__ast_gethostbyname__instead__ |
#define | pthread_cond_broadcast use_ast_cond_broadcast_instead_of_pthread_cond_broadcast |
#define | pthread_cond_destroy use_ast_cond_destroy_instead_of_pthread_cond_destroy |
#define | pthread_cond_init use_ast_cond_init_instead_of_pthread_cond_init |
#define | pthread_cond_signal use_ast_cond_signal_instead_of_pthread_cond_signal |
#define | pthread_cond_t use_ast_cond_t_instead_of_pthread_cond_t |
#define | pthread_cond_timedwait use_ast_cond_timedwait_instead_of_pthread_cond_timedwait |
#define | pthread_cond_wait use_ast_cond_wait_instead_of_pthread_cond_wait |
#define | pthread_create __use_ast_pthread_create_instead__ |
#define | pthread_mutex_destroy use_ast_mutex_destroy_instead_of_pthread_mutex_destroy |
#define | pthread_mutex_init use_ast_mutex_init_instead_of_pthread_mutex_init |
#define | PTHREAD_MUTEX_INIT_VALUE PTHREAD_MUTEX_INITIALIZER |
#define | pthread_mutex_lock use_ast_mutex_lock_instead_of_pthread_mutex_lock |
#define | pthread_mutex_t use_ast_mutex_t_instead_of_pthread_mutex_t |
#define | pthread_mutex_trylock use_ast_mutex_trylock_instead_of_pthread_mutex_trylock |
#define | pthread_mutex_unlock use_ast_mutex_unlock_instead_of_pthread_mutex_unlock |
Typedefs | |
typedef pthread_cond_t | ast_cond_t |
typedef pthread_mutex_t | ast_mutex_t |
typedef pthread_rwlock_t | ast_rwlock_t |
Functions | |
int | ast_atomic_fetchadd_int_slow (volatile int *p, int v) |
static int | ast_cond_broadcast (ast_cond_t *cond) |
static int | ast_cond_destroy (ast_cond_t *cond) |
static int | ast_cond_init (ast_cond_t *cond, pthread_condattr_t *cond_attr) |
static int | ast_cond_signal (ast_cond_t *cond) |
static int | ast_cond_timedwait (ast_cond_t *cond, ast_mutex_t *t, const struct timespec *abstime) |
static int | ast_cond_wait (ast_cond_t *cond, ast_mutex_t *t) |
AST_INLINE_API (int ast_atomic_fetchadd_int(volatile int *p, int v),{return ast_atomic_fetchadd_int_slow(p, v);}) AST_INLINE_API(int ast_atomic_dec_and_test(volatile int *p) | |
Atomically add v to *p and return * the previous value of *p. This can be used to handle reference counts, and the return value can be used to generate unique identifiers. decrement *p by 1 and return true if the variable has reached 0. Useful e.g. to check if a refcount has reached 0. | |
static int | ast_mutex_destroy (ast_mutex_t *pmutex) |
static int | ast_mutex_init (ast_mutex_t *pmutex) |
static int | ast_mutex_lock (ast_mutex_t *pmutex) |
static int | ast_mutex_trylock (ast_mutex_t *pmutex) |
static int | ast_mutex_unlock (ast_mutex_t *pmutex) |
static int | ast_rwlock_destroy (ast_rwlock_t *prwlock) |
static int | ast_rwlock_init (ast_rwlock_t *prwlock) |
static int | ast_rwlock_rdlock (ast_rwlock_t *prwlock) |
static int | ast_rwlock_tryrdlock (ast_rwlock_t *prwlock) |
static int | ast_rwlock_trywrlock (ast_rwlock_t *prwlock) |
static int | ast_rwlock_unlock (ast_rwlock_t *prwlock) |
static int | ast_rwlock_wrlock (ast_rwlock_t *prwlock) |
Definition in file lock.h.
#define __AST_MUTEX_DEFINE | ( | scope, | |||
mutex, | |||||
init_val, | |||||
track | ) | scope ast_mutex_t mutex = init_val |
#define __MTX_PROF | ( | a | ) | return pthread_mutex_lock((a)) |
#define ast_channel_lock | ( | x | ) | ast_mutex_lock(&x->lock) |
Referenced by __login_exec(), __oh323_destroy(), __sip_destroy(), agent_hangup(), ast_activate_generator(), ast_answer(), ast_async_goto(), ast_audiohook_attach(), ast_audiohook_detach_source(), ast_autoservice_start(), ast_bridge_call(), ast_call(), ast_channel_free(), ast_channel_masquerade(), ast_check_hangup_locked(), ast_deactivate_generator(), ast_dial_join(), ast_do_masquerade(), ast_explicit_goto(), ast_hangup(), ast_indicate_data(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_queue_frame(), ast_read_generator_actions(), ast_rtp_bridge(), ast_rtp_early_bridge(), ast_rtp_make_compatible(), ast_set_callerid(), ast_softhangup(), ast_stopstream(), ast_transfer(), ast_udptl_bridge(), ast_waitfor_nandfds(), ast_write(), callerid_read(), callerid_write(), channel_spy(), chanspy_ds_free(), common_exec(), do_atxfer(), do_parking_thread(), func_header_read(), function_sipchaninfo_read(), generator_force(), handle_request_invite(), local_hangup(), local_queue_frame(), p2p_callback_disable(), pbx_builtin_getvar_helper(), pbx_builtin_pushvar_helper(), pbx_builtin_serialize_variables(), pbx_builtin_setvar_helper(), pbx_retrieve_variable(), ring_entry(), sendtext_exec(), set_ext_pri(), set_format(), setup_transfer_datastore(), sip_addheader(), sip_dtmfmode(), sip_park(), sip_park_thread(), smdi_msg_read(), smdi_msg_retrieve_read(), transmit_invite(), and try_calling().
#define ast_channel_trylock | ( | x | ) | ast_mutex_trylock(&x->lock) |
Referenced by __ast_read(), __oh323_rtp_create(), agent_logoff(), ast_channel_masquerade(), ast_queue_hangup(), ast_rtp_bridge(), ast_rtp_early_bridge(), ast_rtp_make_compatible(), ast_udptl_bridge(), ast_write(), auto_congest(), channel_find_locked(), cleanup_connection(), dahdi_softhangup_all(), do_monitor(), get_sip_pvt_byid_locked(), hangup_connection(), local_hangup(), local_queue_frame(), oh323_rtp_read(), oh323_simulate_dtmf_end(), receive_digit(), retrans_pkt(), setup_rtp_connection(), sip_park(), sipsock_read(), and update_state().
#define ast_channel_unlock | ( | x | ) | ast_mutex_unlock(&x->lock) |
Referenced by __ast_read(), __login_exec(), __oh323_destroy(), __oh323_rtp_create(), __sip_destroy(), action_atxfer(), action_getvar(), action_hangup(), action_redirect(), action_setvar(), action_status(), action_timeout(), agent_hangup(), agent_logoff(), ast_activate_generator(), ast_answer(), ast_async_goto(), ast_async_goto_by_name(), ast_audiohook_attach(), ast_audiohook_detach_source(), ast_autoservice_start(), ast_bridge_call(), ast_call(), ast_channel_free(), ast_channel_masquerade(), ast_check_hangup_locked(), ast_complete_channels(), ast_deactivate_generator(), ast_dial_join(), ast_do_masquerade(), ast_explicit_goto(), ast_hangup(), ast_indicate_data(), ast_parse_device_state(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_pickup_call(), ast_queue_frame(), ast_queue_hangup(), ast_read_generator_actions(), ast_rtp_bridge(), ast_rtp_early_bridge(), ast_rtp_make_compatible(), ast_set_callerid(), ast_softhangup(), ast_stopstream(), ast_transfer(), ast_udptl_bridge(), ast_waitfor_nandfds(), ast_write(), auto_congest(), bridge_native_loop(), bridge_p2p_loop(), callerid_read(), callerid_write(), change_monitor_action(), channel_spy(), chanspy_ds_free(), cleanup_connection(), common_exec(), dahdi_softhangup_all(), do_atxfer(), do_monitor(), do_parking_thread(), do_pause_or_unpause(), fast_originate(), func_header_read(), function_sipchaninfo_read(), generator_force(), handle_chanlist(), handle_chanlist_deprecated(), handle_channelstatus(), handle_core_set_debug_channel(), handle_debugchan_deprecated(), handle_getvariablefull(), handle_hangup(), handle_invite_replaces(), handle_nodebugchan_deprecated(), handle_request_invite(), handle_request_refer(), handle_showchan(), handle_showchan_deprecated(), handle_softhangup(), hangup_connection(), local_attended_transfer(), local_hangup(), local_queue_frame(), manager_park(), mixmonitor_cli(), next_channel(), oh323_rtp_read(), oh323_simulate_dtmf_end(), p2p_callback_disable(), park_call_full(), pbx_builtin_getvar_helper(), pbx_builtin_importvar(), pbx_builtin_pushvar_helper(), pbx_builtin_serialize_variables(), pbx_builtin_setvar_helper(), pbx_retrieve_variable(), pickup_by_exten(), pickup_by_mark(), receive_digit(), retrans_pkt(), ring_entry(), sendtext_exec(), set_ext_pri(), set_format(), setup_chanspy_ds(), setup_rtp_connection(), setup_transfer_datastore(), sip_addheader(), sip_dtmfmode(), sip_park(), sip_park_thread(), sipsock_read(), smdi_msg_read(), smdi_msg_retrieve_read(), start_monitor_action(), stop_monitor_action(), transmit_invite(), try_calling(), and update_state().
#define AST_MUTEX_DEFINE_STATIC | ( | mutex | ) | __AST_MUTEX_DEFINE(static, mutex, AST_MUTEX_INIT_VALUE, 1) |
#define AST_MUTEX_DEFINE_STATIC_NOTRACKING | ( | mutex | ) | __AST_MUTEX_DEFINE(static, mutex, AST_MUTEX_INIT_VALUE_NOTRACKING, 0) |
#define AST_MUTEX_INIT_VALUE ((ast_mutex_t) PTHREAD_MUTEX_INIT_VALUE) |
#define AST_MUTEX_INIT_VALUE_NOTRACKING ((ast_mutex_t) PTHREAD_MUTEX_INIT_VALUE) |
#define AST_MUTEX_INITIALIZER __use_AST_MUTEX_DEFINE_STATIC_rather_than_AST_MUTEX_INITIALIZER__ |
#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE |
#define ast_pthread_mutex_init | ( | pmutex, | |||
a | ) | pthread_mutex_init(pmutex,a) |
#define AST_PTHREADT_NULL (pthread_t) -1 |
Definition at line 74 of file lock.h.
Referenced by __unload_module(), accept_thread(), action_waitevent(), ast_autoservice_start(), ast_autoservice_stop(), ast_cdr_submit_batch(), ast_device_state_changed_literal(), ast_dial_create(), ast_dial_join(), ast_smdi_interface_destroy(), build_conf(), conf_run(), console_verboser(), dahdi_restart(), do_reload(), http_server_start(), iax2_transmit(), load_module(), load_rpt_vars(), manager_event(), network_thread(), process_precache(), quit_handler(), restart_monitor(), rpt_master(), sla_destroy(), and unload_module().
#define AST_PTHREADT_STOP (pthread_t) -2 |
Definition at line 75 of file lock.h.
Referenced by __unload_module(), answer_exec_run(), ast_dial_join(), ast_smdi_interface_destroy(), dahdi_restart(), monitor_dial(), restart_monitor(), rpt(), rpt_master(), and unload_module().
#define AST_RWLOCK_DEFINE_STATIC | ( | rwlock | ) | __AST_RWLOCK_DEFINE(static, rwlock) |
#define DEADLOCK_AVOIDANCE | ( | lock | ) |
Value:
ast_mutex_unlock(lock); \ usleep(1); \ ast_mutex_lock(lock);
Definition at line 714 of file lock.h.
Referenced by __sip_ack(), agent_logoff(), dahdi_bridge(), dahdi_handle_event(), dahdi_queue_frame(), dahdi_read(), dahdi_unlink(), do_monitor(), get_sip_pvt_byid_locked(), grab_owner(), iax2_destroy(), iax2_indicate(), iax2_queue_control_data(), iax2_queue_frame(), iax2_queue_hangup(), lock_both(), mgcp_queue_frame(), mgcp_queue_hangup(), retrans_pkt(), sip_park(), socket_process(), and wakeup_sub().
#define gethostbyname __gethostbyname__is__not__reentrant__use__ast_gethostbyname__instead__ |
#define pthread_cond_broadcast use_ast_cond_broadcast_instead_of_pthread_cond_broadcast |
#define pthread_cond_destroy use_ast_cond_destroy_instead_of_pthread_cond_destroy |
#define pthread_cond_init use_ast_cond_init_instead_of_pthread_cond_init |
#define pthread_cond_signal use_ast_cond_signal_instead_of_pthread_cond_signal |
#define pthread_cond_t use_ast_cond_t_instead_of_pthread_cond_t |
#define pthread_cond_timedwait use_ast_cond_timedwait_instead_of_pthread_cond_timedwait |
#define pthread_cond_wait use_ast_cond_wait_instead_of_pthread_cond_wait |
#define pthread_create __use_ast_pthread_create_instead__ |
Definition at line 841 of file lock.h.
Referenced by ast_pthread_create_stack(), and misdn_tasks_init().
#define pthread_mutex_destroy use_ast_mutex_destroy_instead_of_pthread_mutex_destroy |
#define pthread_mutex_init use_ast_mutex_init_instead_of_pthread_mutex_init |
Definition at line 823 of file lock.h.
Referenced by ast_mutex_init(), dummy_start(), and init_bc().
#define pthread_mutex_lock use_ast_mutex_lock_instead_of_pthread_mutex_lock |
#define pthread_mutex_t use_ast_mutex_t_instead_of_pthread_mutex_t |
#define pthread_mutex_trylock use_ast_mutex_trylock_instead_of_pthread_mutex_trylock |
#define pthread_mutex_unlock use_ast_mutex_unlock_instead_of_pthread_mutex_unlock |
Definition at line 821 of file lock.h.
Referenced by ast_mutex_unlock(), dummy_start(), and misdn_send_unlock().
typedef pthread_cond_t ast_cond_t |
typedef pthread_mutex_t ast_mutex_t |
typedef pthread_rwlock_t ast_rwlock_t |
int ast_atomic_fetchadd_int_slow | ( | volatile int * | p, | |
int | v | |||
) |
Definition at line 1309 of file utils.c.
References ast_mutex_lock(), and ast_mutex_unlock().
01310 { 01311 int ret; 01312 ast_mutex_lock(&fetchadd_m); 01313 ret = *p; 01314 *p += v; 01315 ast_mutex_unlock(&fetchadd_m); 01316 return ret; 01317 }
static int ast_cond_broadcast | ( | ast_cond_t * | cond | ) | [inline, static] |
Definition at line 775 of file lock.h.
References pthread_cond_broadcast.
Referenced by ast_smdi_md_message_push(), ast_smdi_md_message_putback(), ast_smdi_mwi_message_push(), and ast_smdi_mwi_message_putback().
00776 { 00777 return pthread_cond_broadcast(cond); 00778 }
static int ast_cond_destroy | ( | ast_cond_t * | cond | ) | [inline, static] |
Definition at line 780 of file lock.h.
References pthread_cond_destroy.
Referenced by __unload_module(), ast_audiohook_destroy(), ast_smdi_interface_destroy(), do_reload(), iax2_process_thread_cleanup(), sla_destroy(), sla_handle_dial_state_event(), and sla_station_exec().
00781 { 00782 return pthread_cond_destroy(cond); 00783 }
static int ast_cond_init | ( | ast_cond_t * | cond, | |
pthread_condattr_t * | cond_attr | |||
) | [inline, static] |
Definition at line 765 of file lock.h.
References pthread_cond_init.
Referenced by alloc_smdi_interface(), ast_audiohook_init(), ast_autoservice_init(), ast_device_state_engine_init(), do_reload(), find_idle_thread(), load_module(), sla_handle_dial_state_event(), sla_load_config(), sla_station_exec(), and start_network_thread().
00766 { 00767 return pthread_cond_init(cond, cond_attr); 00768 }
static int ast_cond_signal | ( | ast_cond_t * | cond | ) | [inline, static] |
Definition at line 770 of file lock.h.
References pthread_cond_signal.
Referenced by __unload_module(), ast_audiohook_detach_list(), ast_audiohook_write_frame(), ast_autoservice_start(), ast_device_state_changed_literal(), audio_audiohook_write_list(), dial_trunk(), run_station(), signal_condition(), sla_destroy(), sla_queue_event_full(), statechange_queue(), submit_unscheduled_batch(), and unload_module().
00771 { 00772 return pthread_cond_signal(cond); 00773 }
static int ast_cond_timedwait | ( | ast_cond_t * | cond, | |
ast_mutex_t * | t, | |||
const struct timespec * | abstime | |||
) | [inline, static] |
Definition at line 790 of file lock.h.
References pthread_cond_timedwait.
Referenced by ast_audiohook_trigger_wait(), do_cdr(), iax2_process_thread(), mwi_monitor_handler(), sched_thread(), sla_thread(), and smdi_message_wait().
00791 { 00792 return pthread_cond_timedwait(cond, t, abstime); 00793 }
static int ast_cond_wait | ( | ast_cond_t * | cond, | |
ast_mutex_t * | t | |||
) | [inline, static] |
Definition at line 785 of file lock.h.
References pthread_cond_wait.
Referenced by autoservice_run(), dahdi_restart(), device_state_thread(), do_devstate_changes(), sla_handle_dial_state_event(), sla_station_exec(), and sla_thread().
00786 { 00787 return pthread_cond_wait(cond, t); 00788 }
AST_INLINE_API | ( | int | ast_atomic_fetchadd_int(volatile int *p, int v) | ) | volatile |
Atomically add v to *p and return * the previous value of *p. This can be used to handle reference counts, and the return value can be used to generate unique identifiers. decrement *p by 1 and return true if the variable has reached 0. Useful e.g. to check if a refcount has reached 0.
static int ast_mutex_destroy | ( | ast_mutex_t * | pmutex | ) | [inline, static] |
Definition at line 748 of file lock.h.
References pthread_mutex_destroy.
Referenced by __ast_context_destroy(), __login_exec(), __oh323_destroy(), __unload_module(), agent_cleanup(), agent_hangup(), ao2_ref(), ast_audiohook_destroy(), ast_channel_free(), ast_dnsmgr_release(), ast_odbc_request_obj(), ast_rtp_destroy(), ast_smdi_interface_destroy(), ast_speech_destroy(), ast_speech_new(), build_gateway(), common_exec(), conf_free(), delete_devices(), destroy_dahdi_pvt(), destroy_queue(), destroy_session(), features_hangup(), free_session(), iax2_process_thread_cleanup(), local_pvt_destroy(), misdn_cfg_destroy(), misdn_jb_destroy(), read_agent_config(), release_chan(), sched_context_destroy(), sip_alloc(), sla_destroy(), sla_handle_dial_state_event(), sla_station_exec(), timing_read(), and unload_module().
00749 { 00750 return pthread_mutex_destroy(pmutex); 00751 }
static int ast_mutex_init | ( | ast_mutex_t * | pmutex | ) | [inline, static] |
Definition at line 728 of file lock.h.
References AST_MUTEX_KIND, and pthread_mutex_init.
Referenced by accept_thread(), add_agent(), alloc_profile(), alloc_queue(), alloc_smdi_interface(), ao2_alloc(), ast_audiohook_init(), ast_channel_alloc(), ast_dial_create(), ast_dnsmgr_get(), ast_odbc_request_obj(), ast_rtp_new_init(), ast_speech_new(), build_conf(), build_device(), build_gateway(), chandup(), common_exec(), dahdi_restart(), features_alloc(), find_idle_thread(), gtalk_alloc(), load_module(), local_alloc(), misdn_cfg_init(), misdn_jb_init(), mkintf(), oh323_alloc(), read_config(), rpt_master(), sched_context_create(), sip_alloc(), skinny_new(), sla_handle_dial_state_event(), sla_load_config(), sla_station_exec(), and start_network_thread().
00729 { 00730 int res; 00731 pthread_mutexattr_t attr; 00732 00733 pthread_mutexattr_init(&attr); 00734 pthread_mutexattr_settype(&attr, AST_MUTEX_KIND); 00735 00736 res = pthread_mutex_init(pmutex, &attr); 00737 pthread_mutexattr_destroy(&attr); 00738 return res; 00739 }
static int ast_mutex_lock | ( | ast_mutex_t * | pmutex | ) | [inline, static] |
Definition at line 753 of file lock.h.
References __MTX_PROF.
Referenced by __action_showchannels(), __ast_context_destroy(), __ast_key_get(), __attempt_transmit(), __auth_reject(), __auto_congest(), __auto_hangup(), __find_callno(), __get_from_jb(), __iax2_poke_noanswer(), __login_exec(), __oh323_new(), __queues_show(), __send_lagrq(), __send_ping(), __sip_show_channels(), __unload_module(), accept_thread(), action_agent_callback_login(), action_agents(), action_waitevent(), add_to_queue(), agent_ack_sleep(), agent_call(), agent_cont_sleep(), agent_devicestate(), agent_devicestate_cb(), agent_digit_begin(), agent_digit_end(), agent_fixup(), agent_hangup(), agent_indicate(), agent_logoff(), agent_new(), agent_read(), agent_request(), agent_sendhtml(), agent_sendtext(), agent_write(), agents_show(), agents_show_online(), alsa_answer(), alsa_call(), alsa_digit(), alsa_fixup(), alsa_hangup(), alsa_indicate(), alsa_read(), alsa_request(), alsa_text(), alsa_write(), answer_exec_run(), ao2_lock(), app_exec(), append_mailbox_mapping(), ast_add_extension2(), ast_atomic_fetchadd_int_slow(), ast_cdr_detach(), ast_cdr_engine_init(), ast_cdr_submit_batch(), ast_cli_netstats(), ast_config_engine_deregister(), ast_config_engine_register(), ast_context_add_ignorepat2(), ast_context_add_include2(), ast_context_add_switch2(), ast_context_lockmacro(), ast_context_remove_extension_callerid2(), ast_context_remove_ignorepat2(), ast_context_remove_include2(), ast_context_remove_switch2(), ast_db_del(), ast_db_deltree(), ast_db_get(), ast_db_gettree(), ast_db_put(), ast_dial_join(), ast_dnsmgr_changed(), ast_enum_init(), ast_get_enum(), ast_get_indication_tone(), ast_get_indication_zone(), ast_get_txt(), ast_iax2_new(), ast_lock_context(), ast_monitor_start(), ast_odbc_smart_execute(), ast_random(), ast_register_indication(), ast_register_indication_country(), ast_replace_sigchld(), ast_rtp_get_bridged(), ast_rtp_get_current_formats(), ast_rtp_lookup_code(), ast_rtp_lookup_pt(), ast_rtp_pt_clear(), ast_rtp_pt_copy(), ast_rtp_pt_default(), ast_rtp_set_m_type(), ast_rtp_set_rtpmap_type(), ast_rtp_unset_m_type(), ast_sched_add_variable(), ast_sched_del(), ast_sched_runq(), ast_sched_wait(), ast_sched_when(), ast_search_dns(), ast_smdi_md_message_push(), ast_smdi_md_message_putback(), ast_smdi_mwi_message_push(), ast_smdi_mwi_message_putback(), ast_unregister_indication(), ast_unregister_indication_country(), ast_unreplace_sigchld(), ast_walk_indications(), astman_append(), astman_verify_session_readpermissions(), astman_verify_session_writepermissions(), auth_reject(), authenticate_reply(), auto_congest(), auto_hangup(), cb_events(), cb_extensionstate(), channel_spy(), chanspy_ds_chan_fixup(), chanspy_ds_destroy(), chanspy_ds_free(), check_availability(), check_beep(), cl_dequeue_chan(), cl_queue_chan(), clear_config_maps(), common_exec(), compare_weight(), complete_dpreply(), complete_queue_remove_member(), complete_sipch(), conf_run(), config_command(), config_pgsql(), console_answer(), console_answer_deprecated(), console_autoanswer(), console_autoanswer_deprecated(), console_dial(), console_dial_deprecated(), console_hangup(), console_hangup_deprecated(), console_sendtext(), console_sendtext_deprecated(), crypto_load(), csv_log(), custom_log(), dahdi_answer(), dahdi_bridge(), dahdi_call(), dahdi_digit_begin(), dahdi_digit_end(), dahdi_exception(), dahdi_fixup(), dahdi_func_read(), dahdi_handle_event(), dahdi_hangup(), dahdi_indicate(), dahdi_request(), dahdi_restart(), dahdi_show_channel(), dahdi_show_channels(), dahdi_softhangup_all(), dahdi_unlink(), dahdi_write(), database_show(), database_showkey(), decrease_call_count(), defer_full_frame(), delete_devices(), delete_users(), destroy_all_channels(), destroy_all_mailbox_mappings(), destroy_endpoint(), destroy_session(), device_state_thread(), dial_trunk(), dnsmgr_refresh(), do_cdr(), do_monitor(), do_parking_thread(), do_reload(), donodelog(), dp_lookup(), dump_cmd_queues(), dump_queue(), features_answer(), features_call(), features_digit_begin(), features_digit_end(), features_fixup(), features_hangup(), features_indicate(), features_read(), features_show(), features_write(), find_cache(), find_call(), find_call_locked(), find_command(), find_engine(), find_line_by_name(), find_queue_by_name_rt(), find_session(), find_subchannel_and_lock(), find_tpeer(), function_remote(), get_input(), get_member_status(), get_sip_pvt_byid_locked(), gethostbyname_r(), gtalk_alloc(), gtalk_answer(), gtalk_digit(), gtalk_fixup(), gtalk_get_rtp_peer(), gtalk_hangup(), gtalk_newcall(), gtalk_read(), gtalk_set_rtp_peer(), gtalk_show_channels(), gtalk_write(), h323_reload(), handle_capabilities_res_message(), handle_deferred_full_frames(), handle_line_state_req_message(), handle_modlist(), handle_parkedcalls(), handle_request(), handle_request_invite(), handle_request_subscribe(), handle_response_invite(), handle_save_dialplan(), handle_show_globals(), iax2_bridge(), iax2_call(), iax2_canmatch(), iax2_do_register(), iax2_exec(), iax2_exists(), iax2_fixup(), iax2_hangup(), iax2_indicate(), iax2_matchmore(), iax2_poke_peer(), iax2_process_thread(), iax2_show_cache(), iax2_show_channels(), iax2_show_firmware(), iax2_write(), iax_check_version(), iax_firmware_append(), iax_process_template(), iax_prov_complete_template(), iax_provision_build(), iax_provision_reload(), iax_provision_version(), iax_show_provisioning(), iax_template_parse(), increase_call_count(), interface_exists_global(), is_our_turn(), join_queue(), leave_queue(), load_config(), load_module(), load_rpt_vars(), local_answer(), local_call(), local_digit_begin(), local_digit_end(), local_fixup(), local_hangup(), local_indicate(), local_queue_frame(), local_sendhtml(), local_sendtext(), local_write(), locals_show(), lock_both(), lock_msg_q(), make_trunk(), manager_event(), manager_parking_status(), manager_queues_status(), mgcp_answer(), mgcp_audit_endpoint(), mgcp_call(), mgcp_devicestate(), mgcp_fixup(), mgcp_hangup(), mgcp_indicate(), mgcp_postrequest(), mgcp_read(), mgcp_reload(), mgcp_senddigit_begin(), mgcp_senddigit_end(), mgcp_show_endpoints(), mgcp_write(), mgcpsock_read(), misdn_cfg_lock(), misdn_hangup(), misdn_jb_empty(), misdn_jb_fill(), misdn_overlap_dial_task(), mwi_monitor_handler(), node_lookup(), odbc_load_module(), odbc_log(), odbc_obj_connect(), odbc_obj_disconnect(), odbc_unload_module(), oh323_alloc(), oh323_answer(), oh323_call(), oh323_destroy(), oh323_digit_begin(), oh323_digit_end(), oh323_fixup(), oh323_get_rtp_peer(), oh323_hangup(), oh323_indicate(), oh323_read(), oh323_request(), oh323_simulate_dtmf_end(), oh323_update_info(), oh323_write(), osp_create_transaction(), osp_get_policy(), osp_show(), osp_unload(), p2p_set_bridge(), park_call_full(), park_exec(), pbx_builtin_clear_globals(), pbx_builtin_getvar_helper(), pbx_builtin_pushvar_helper(), pbx_builtin_setvar_helper(), pbx_retrieve_variable(), peer_destructor(), pgsql_log(), phone_request(), process_events(), prune_gateways(), queue_function_queuemembercount(), queue_function_queuememberlist(), queue_function_queuewaitingcount(), queue_ringing_trunk(), realtime_multi_pgsql(), realtime_pgsql(), recalc_holdtime(), record_abandoned(), recordthread(), register_verify(), registry_authrequest(), release_chan(), reload(), reload_agents(), reload_config(), reload_firmware(), reload_followme(), reload_queue_members(), reload_queues(), remove_from_queue(), restart_monitor(), retrans_pkt(), ring_entry(), rpt_master(), rpt_tele_thread(), run_station(), sched_context_destroy(), sched_thread(), send_command_locked(), send_request(), set_eventmask(), set_member_paused(), setup_chanspy_ds(), setup_dahdi(), show_keys(), signal_condition(), sip_alloc(), sip_answer(), sip_destroy(), sip_dtmfmode(), sip_fixup(), sip_get_rtp_peer(), sip_get_udptl_peer(), sip_get_vrtp_peer(), sip_handle_t38_reinvite(), sip_hangup(), sip_indicate(), sip_new(), sip_read(), sip_reg_timeout(), sip_reload(), sip_request_call(), sip_senddigit_begin(), sip_senddigit_end(), sip_set_rtp_peer(), sip_set_udptl_peer(), sip_show_channel(), sip_show_history(), sip_transfer(), sip_write(), sipsock_read(), skinny_hangup(), skinny_read(), skinny_register(), skinny_req_parse(), skinny_reset_device(), skinny_show_devices(), skinny_show_lines(), skinny_write(), sla_destroy(), sla_handle_dial_state_event(), sla_handle_ringing_trunk_event(), sla_hangup_stations(), sla_queue_event_full(), sla_station_exec(), sla_thread(), sla_trunk_exec(), socket_process(), speech_background(), sqlite_log(), ss_thread(), start_rtp(), statechange_queue(), submit_unscheduled_batch(), tds_log(), test_for_thread_safety(), test_thread_body(), timing_read(), transmit_response(), try_calling(), try_load_key(), unload_module(), update_pgsql(), update_queue(), update_realtime_members(), update_registry(), update_status(), verboser(), and writefile().
00754 { 00755 __MTX_PROF(pmutex); 00756 }
static int ast_mutex_trylock | ( | ast_mutex_t * | pmutex | ) | [inline, static] |
Definition at line 758 of file lock.h.
References pthread_mutex_trylock.
Referenced by agent_new(), ast_module_reload(), cache_get_callno_locked(), check_bridge(), dahdi_bridge(), dahdi_handle_event(), dahdi_queue_frame(), dahdi_read(), dahdi_unlink(), do_monitor(), grab_owner(), iax2_destroy(), iax2_queue_control_data(), iax2_queue_frame(), iax2_queue_hangup(), local_hangup(), local_queue_frame(), lock_both(), mgcp_queue_frame(), mgcp_queue_hangup(), network_thread(), refresh_list(), socket_process(), unload_module(), and wakeup_sub().
00759 { 00760 return pthread_mutex_trylock(pmutex); 00761 }
static int ast_mutex_unlock | ( | ast_mutex_t * | pmutex | ) | [inline, static] |
Definition at line 743 of file lock.h.
References pthread_mutex_unlock.
Referenced by __action_showchannels(), __ast_context_destroy(), __ast_key_get(), __attempt_transmit(), __auth_reject(), __auto_congest(), __auto_hangup(), __find_callno(), __get_from_jb(), __iax2_poke_noanswer(), __login_exec(), __oh323_destroy(), __oh323_new(), __oh323_rtp_create(), __queues_show(), __send_lagrq(), __send_ping(), __unload_module(), accept_thread(), action_agent_callback_login(), action_agents(), action_setcdruserfield(), action_waitevent(), add_to_queue(), agent_ack_sleep(), agent_call(), agent_cleanup(), agent_cont_sleep(), agent_devicestate(), agent_devicestate_cb(), agent_digit_begin(), agent_digit_end(), agent_fixup(), agent_hangup(), agent_indicate(), agent_logoff(), agent_new(), agent_read(), agent_request(), agent_sendhtml(), agent_sendtext(), agent_write(), agents_show(), agents_show_online(), alsa_answer(), alsa_call(), alsa_digit(), alsa_fixup(), alsa_hangup(), alsa_indicate(), alsa_read(), alsa_request(), alsa_text(), alsa_write(), answer_call(), answer_exec_run(), ao2_unlock(), app_exec(), append_mailbox_mapping(), ast_add_extension2(), ast_atomic_fetchadd_int_slow(), ast_cdr_detach(), ast_cdr_engine_init(), ast_cdr_submit_batch(), ast_cli_netstats(), ast_config_engine_deregister(), ast_config_engine_register(), ast_context_add_ignorepat2(), ast_context_add_include2(), ast_context_add_switch2(), ast_context_remove_extension_callerid2(), ast_context_remove_ignorepat2(), ast_context_remove_include2(), ast_context_remove_switch2(), ast_context_unlockmacro(), ast_db_del(), ast_db_deltree(), ast_db_get(), ast_db_gettree(), ast_db_put(), ast_dial_join(), ast_dnsmgr_changed(), ast_enum_init(), ast_get_enum(), ast_get_indication_tone(), ast_get_indication_zone(), ast_get_txt(), ast_iax2_new(), ast_module_reload(), ast_monitor_start(), ast_odbc_smart_execute(), ast_random(), ast_register_indication(), ast_register_indication_country(), ast_replace_sigchld(), ast_rtp_get_bridged(), ast_rtp_lookup_code(), ast_rtp_lookup_pt(), ast_rtp_pt_clear(), ast_rtp_pt_copy(), ast_rtp_pt_default(), ast_rtp_set_m_type(), ast_rtp_set_rtpmap_type(), ast_rtp_unset_m_type(), ast_sched_add_variable(), ast_sched_del(), ast_sched_runq(), ast_sched_wait(), ast_sched_when(), ast_search_dns(), ast_smdi_md_message_push(), ast_smdi_md_message_putback(), ast_smdi_mwi_message_push(), ast_smdi_mwi_message_putback(), ast_unlock_context(), ast_unregister_indication(), ast_unregister_indication_country(), ast_unreplace_sigchld(), ast_walk_indications(), astman_append(), astman_verify_session_readpermissions(), astman_verify_session_writepermissions(), asyncgoto_exec(), attempt_transfer(), auth_reject(), authenticate_reply(), auto_congest(), auto_hangup(), cache_get_callno_locked(), cb_events(), cb_extensionstate(), chan_ringing(), channel_spy(), chanspy_ds_chan_fixup(), chanspy_ds_destroy(), chanspy_ds_free(), check_availability(), check_beep(), check_bridge(), cl_dequeue_chan(), cl_queue_chan(), cleanup_connection(), clear_config_maps(), common_exec(), compare_weight(), complete_ch_helper(), complete_dpreply(), complete_queue_remove_member(), conf_exec(), conf_run(), config_pgsql(), connection_made(), console_answer(), console_answer_deprecated(), console_autoanswer(), console_autoanswer_deprecated(), console_dial(), console_dial_deprecated(), console_hangup(), console_hangup_deprecated(), console_sendtext(), console_sendtext_deprecated(), crypto_load(), csv_log(), custom_log(), dahdi_answer(), dahdi_bridge(), dahdi_call(), dahdi_digit_begin(), dahdi_digit_end(), dahdi_exception(), dahdi_func_read(), dahdi_handle_event(), dahdi_hangup(), dahdi_indicate(), dahdi_queue_frame(), dahdi_read(), dahdi_request(), dahdi_restart(), dahdi_show_channel(), dahdi_show_channels(), dahdi_softhangup_all(), dahdi_write(), database_show(), database_showkey(), decrease_call_count(), defer_full_frame(), delete_users(), destroy_all_channels(), destroy_all_mailbox_mappings(), destroy_session(), device_state_thread(), dial_trunk(), dnsmgr_refresh(), do_cdr(), do_monitor(), do_parking_thread(), do_reload(), donodelog(), dp_lookup(), dump_cmd_queues(), dump_queue(), external_rtp_create(), features_answer(), features_call(), features_digit_begin(), features_digit_end(), features_fixup(), features_hangup(), features_indicate(), features_read(), features_show(), features_write(), find_cache(), find_call_locked(), find_line_by_name(), find_queue_by_name_rt(), find_session(), find_subchannel_and_lock(), function_remote(), get_input(), get_member_status(), get_sip_pvt_byid_locked(), gethostbyname_r(), gtalk_alloc(), gtalk_answer(), gtalk_digit(), gtalk_fixup(), gtalk_get_rtp_peer(), gtalk_hangup(), gtalk_newcall(), gtalk_read(), gtalk_set_rtp_peer(), gtalk_show_channels(), gtalk_write(), h323_reload(), handle_capabilities_res_message(), handle_deferred_full_frames(), handle_invite_replaces(), handle_line_state_req_message(), handle_modlist(), handle_parkedcalls(), handle_request(), handle_request_invite(), handle_request_subscribe(), handle_response_invite(), handle_save_dialplan(), handle_show_globals(), hangup_connection(), iax2_bridge(), iax2_call(), iax2_canmatch(), iax2_destroy(), iax2_do_register(), iax2_exec(), iax2_exists(), iax2_fixup(), iax2_hangup(), iax2_indicate(), iax2_matchmore(), iax2_poke_peer(), iax2_process_thread(), iax2_provision(), iax2_queue_control_data(), iax2_queue_frame(), iax2_queue_hangup(), iax2_request(), iax2_show_cache(), iax2_show_channels(), iax2_show_firmware(), iax2_trunk_queue(), iax2_write(), iax_check_version(), iax_firmware_append(), iax_process_template(), iax_provision_build(), iax_provision_reload(), iax_provision_version(), iax_template_parse(), increase_call_count(), interface_exists_global(), is_our_turn(), join_queue(), leave_queue(), load_config(), load_module(), load_rpt_vars(), local_answer(), local_attended_transfer(), local_call(), local_digit_begin(), local_digit_end(), local_fixup(), local_hangup(), local_indicate(), local_queue_frame(), local_sendhtml(), local_sendtext(), local_write(), locals_show(), make_trunk(), manager_event(), manager_parking_status(), manager_play_dtmf(), manager_queues_status(), mgcp_answer(), mgcp_audit_endpoint(), mgcp_call(), mgcp_devicestate(), mgcp_fixup(), mgcp_hangup(), mgcp_indicate(), mgcp_postrequest(), mgcp_queue_frame(), mgcp_queue_hangup(), mgcp_read(), mgcp_reload(), mgcp_request(), mgcp_senddigit_begin(), mgcp_senddigit_end(), mgcp_show_endpoints(), mgcp_write(), mgcpsock_read(), misdn_cfg_unlock(), misdn_hangup(), misdn_jb_empty(), misdn_jb_fill(), misdn_overlap_dial_task(), mwi_monitor_handler(), network_thread(), node_lookup(), odbc_load_module(), odbc_log(), odbc_obj_connect(), odbc_obj_disconnect(), odbc_unload_module(), oh323_alloc(), oh323_answer(), oh323_call(), oh323_destroy(), oh323_digit_begin(), oh323_digit_end(), oh323_fixup(), oh323_get_rtp_peer(), oh323_hangup(), oh323_indicate(), oh323_read(), oh323_request(), oh323_simulate_dtmf_end(), oh323_update_info(), oh323_write(), osp_create_transaction(), osp_get_policy(), osp_show(), osp_unload(), p2p_set_bridge(), park_call_full(), park_exec(), pbx_builtin_clear_globals(), pbx_builtin_getvar_helper(), pbx_builtin_pushvar_helper(), pbx_builtin_setvar_helper(), pbx_retrieve_variable(), peer_destructor(), pgsql_log(), phone_request(), process_events(), progress(), queue_function_queuemembercount(), queue_function_queuememberlist(), queue_function_queuewaitingcount(), queue_ringing_trunk(), realtime_multi_pgsql(), realtime_pgsql(), recalc_holdtime(), receive_digit(), record_abandoned(), recordthread(), refresh_list(), register_verify(), registry_authrequest(), release_chan(), reload(), reload_agents(), reload_config(), reload_firmware(), reload_followme(), reload_queue_members(), reload_queues(), remove_from_queue(), restart_monitor(), retrans_pkt(), ring_entry(), rpt_master(), rpt_tele_thread(), run_station(), sched_context_destroy(), sched_thread(), send_command_locked(), send_request(), set_dtmf_payload(), set_eventmask(), set_local_capabilities(), set_member_paused(), set_peer_capabilities(), setup_chanspy_ds(), setup_dahdi(), setup_rtp_connection(), show_keys(), signal_condition(), sip_alloc(), sip_answer(), sip_destroy(), sip_dtmfmode(), sip_fixup(), sip_get_rtp_peer(), sip_get_udptl_peer(), sip_get_vrtp_peer(), sip_handle_t38_reinvite(), sip_hangup(), sip_indicate(), sip_new(), sip_read(), sip_reg_timeout(), sip_reload(), sip_request_call(), sip_senddigit_begin(), sip_senddigit_end(), sip_set_rtp_peer(), sip_set_udptl_peer(), sip_transfer(), sip_write(), sipsock_read(), skinny_hangup(), skinny_read(), skinny_req_parse(), skinny_reset_device(), skinny_write(), sla_destroy(), sla_handle_dial_state_event(), sla_handle_ringing_trunk_event(), sla_hangup_stations(), sla_queue_event_full(), sla_station_exec(), sla_thread(), sla_trunk_exec(), socket_process(), softhangup_exec(), speech_background(), sqlite_log(), ss_thread(), start_rtp(), statechange_queue(), submit_unscheduled_batch(), tds_log(), test_for_thread_safety(), test_thread_body(), timing_read(), transmit_response(), try_calling(), try_load_key(), unload_module(), unlock_both(), unlock_msg_q(), update_pgsql(), update_queue(), update_realtime_members(), update_registry(), update_status(), verboser(), wakeup_sub(), and writefile().
00744 { 00745 return pthread_mutex_unlock(pmutex); 00746 }
static int ast_rwlock_destroy | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
static int ast_rwlock_init | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
Definition at line 1064 of file lock.h.
01065 { 01066 int res; 01067 pthread_rwlockattr_t attr; 01068 01069 pthread_rwlockattr_init(&attr); 01070 01071 #ifdef HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP 01072 pthread_rwlockattr_setkind_np(&attr, PTHREAD_RWLOCK_PREFER_WRITER_NP); 01073 #endif 01074 01075 res = pthread_rwlock_init(prwlock, &attr); 01076 pthread_rwlockattr_destroy(&attr); 01077 return res; 01078 }
static int ast_rwlock_rdlock | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
Definition at line 1090 of file lock.h.
Referenced by ast_feature_interpret(), ast_feature_request_and_dial(), ast_rdlock_contexts(), complete_show_mancmd(), handle_show_http(), handle_showfeatures(), handle_showmancmd(), handle_showmancmds(), handle_uri(), process_message(), and set_config_flags().
static int ast_rwlock_tryrdlock | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
static int ast_rwlock_trywrlock | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
static int ast_rwlock_unlock | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
Definition at line 1085 of file lock.h.
Referenced by ast_feature_interpret(), ast_feature_request_and_dial(), ast_http_uri_link(), ast_http_uri_unlink(), ast_manager_register_struct(), ast_manager_unregister(), ast_unlock_contexts(), complete_show_mancmd(), handle_show_http(), handle_showfeatures(), handle_showmancmds(), handle_uri(), process_message(), remap_feature(), set_config_flags(), and unmap_features().
static int ast_rwlock_wrlock | ( | ast_rwlock_t * | prwlock | ) | [inline, static] |
Definition at line 1100 of file lock.h.
Referenced by ast_http_uri_link(), ast_http_uri_unlink(), ast_lock_contexts(), ast_manager_register_struct(), ast_manager_unregister(), ast_wrlock_contexts(), remap_feature(), and unmap_features().