mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 00:30:20 +00:00
Add ability to pass arbitrary data to the ao2_callback_fn (called from
ao2_callback and ao2_find). Currently, passing OBJ_POINTER to either
of these mandates that the passed 'arg' is a hashable object, making
searching for an ao2 object based on outside criteria difficult.
Reviewed by Russell and Mark M. via ReviewBoard:
http://reviewboard.digium.com/r/36/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -268,7 +268,7 @@ static struct pthread_timer *find_timer(int handle, int unlinkobj)
|
||||
flags |= OBJ_UNLINK;
|
||||
}
|
||||
|
||||
if (!(timer = ao2_find(pthread_timers, &tmp_timer, flags))) {
|
||||
if (!(timer = ao2_find(pthread_timers, &tmp_timer, NULL, flags))) {
|
||||
ast_assert(timer != NULL);
|
||||
return NULL;
|
||||
}
|
||||
@@ -304,7 +304,7 @@ static int pthread_timer_hash(const void *obj, const int flags)
|
||||
/*!
|
||||
* \note only PIPE_READ is guaranteed valid
|
||||
*/
|
||||
static int pthread_timer_cmp(void *obj, void *arg, int flags)
|
||||
static int pthread_timer_cmp(void *obj, void *arg, void *data, int flags)
|
||||
{
|
||||
struct pthread_timer *timer1 = obj, *timer2 = arg;
|
||||
|
||||
@@ -396,7 +396,7 @@ static void write_byte(int wr_fd)
|
||||
} while (0);
|
||||
}
|
||||
|
||||
static int run_timer(void *obj, void *arg, int flags)
|
||||
static int run_timer(void *obj, void *arg, void *data, int flags)
|
||||
{
|
||||
struct pthread_timer *timer = obj;
|
||||
|
||||
@@ -422,7 +422,7 @@ static void *do_timing(void *arg)
|
||||
while (!timing_thread.stop) {
|
||||
struct timespec ts = { 0, };
|
||||
|
||||
ao2_callback(pthread_timers, OBJ_NODATA, run_timer, NULL);
|
||||
ao2_callback(pthread_timers, OBJ_NODATA, run_timer, NULL, NULL);
|
||||
|
||||
next_wakeup = ast_tvadd(next_wakeup, ast_tv(0, 5000));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user