summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2013-04-25 18:25:31 +0000
committerMark Michelson <mmichelson@digium.com>2013-04-25 18:25:31 +0000
commit74f2318051ca04c240d3b111397365837fb618b6 (patch)
treeef7ddfc3ce21969c93a5e4ab8adf60b12df2f4d9 /main
parentb4c881c86ec8f823dba15bb69eb2cb9f3c7aeb88 (diff)
Merge the pimp_my_sip branch into trunk.
The pimp_my_sip branch is being merged at this point because it offers basic functionality, and from an API standpoint, things are complete. SIP work is *not* feature-complete; however, with the completion of the SUBSCRIBE/NOTIFY API, all APIs (except a PUBLISH API) have been created, and thus it is possible for developers to attempt to create new SIP work. API documentation can be found in the doxygen in the code, but usability documentation is still lacking. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@386540 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/astobj2.c1
-rw-r--r--main/loader.c1
-rw-r--r--main/sorcery.c3
-rw-r--r--main/taskprocessor.c1
-rw-r--r--main/threadpool.c6
5 files changed, 10 insertions, 2 deletions
diff --git a/main/astobj2.c b/main/astobj2.c
index 72a171de9..a980ec379 100644
--- a/main/astobj2.c
+++ b/main/astobj2.c
@@ -525,6 +525,7 @@ int __ao2_ref_debug(void *user_data, int delta, const char *tag, const char *fil
struct astobj2 *obj = INTERNAL_OBJ(user_data);
if (obj == NULL) {
+ ast_backtrace();
ast_assert(0);
return -1;
}
diff --git a/main/loader.c b/main/loader.c
index 5befafb55..10d5485da 100644
--- a/main/loader.c
+++ b/main/loader.c
@@ -842,6 +842,7 @@ static enum ast_module_load_result start_resource(struct ast_module *mod)
return AST_MODULE_LOAD_FAILURE;
}
+ printf ("!!! Going to load %s\n", mod->resource);
res = mod->info->load();
switch (res) {
diff --git a/main/sorcery.c b/main/sorcery.c
index 8b555222d..44e247a38 100644
--- a/main/sorcery.c
+++ b/main/sorcery.c
@@ -740,7 +740,7 @@ int ast_sorcery_objectset_apply(const struct ast_sorcery *sorcery, void *object,
}
if (!res && object_type->apply) {
- object_type->apply(sorcery, object);
+ res = object_type->apply(sorcery, object);
}
return res;
@@ -940,6 +940,7 @@ void *ast_sorcery_retrieve_by_fields(const struct ast_sorcery *sorcery, const ch
unsigned int cached = 0;
if (!object_type) {
+ ast_log(LOG_NOTICE, "Can't find object type '%s'\n", type);
return NULL;
}
diff --git a/main/taskprocessor.c b/main/taskprocessor.c
index 35076b06e..a8d1c80f9 100644
--- a/main/taskprocessor.c
+++ b/main/taskprocessor.c
@@ -602,7 +602,6 @@ struct ast_taskprocessor *ast_taskprocessor_get(const char *name, enum ast_tps_o
/* Unref listener here since the taskprocessor has gained a reference to the listener */
ao2_ref(listener, -1);
return p;
-
}
struct ast_taskprocessor *ast_taskprocessor_create_with_listener(const char *name, struct ast_taskprocessor_listener *listener)
diff --git a/main/threadpool.c b/main/threadpool.c
index e2fdecc57..1ff76014a 100644
--- a/main/threadpool.c
+++ b/main/threadpool.c
@@ -983,7 +983,13 @@ static void *worker_start(void *arg)
{
struct worker_thread *worker = arg;
+ if (worker->options.thread_start) {
+ worker->options.thread_start();
+ }
worker_active(worker);
+ if (worker->options.thread_end) {
+ worker->options.thread_end();
+ }
return NULL;
}