Reduce call-id logging resource usage.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 16 Jan 2013 18:09:28 +0000 (18:09 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 16 Jan 2013 18:09:28 +0000 (18:09 +0000)
Since there is no need for the call-id logging ao2 object to have a lock,
don't create it with one.
........

Merged revisions 379232 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@379233 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/logger.c

index b406960..3caea6c 100644 (file)
@@ -1306,16 +1306,14 @@ void ast_callid_strnprint(char *buffer, size_t buffer_size, struct ast_callid *c
 struct ast_callid *ast_create_callid(void)
 {
        struct ast_callid *call;
-       int using;
 
-       if (!(call = ao2_alloc(sizeof(struct ast_callid), NULL))) {
+       call = ao2_alloc_options(sizeof(struct ast_callid), NULL, AO2_ALLOC_OPT_LOCK_NOLOCK);
+       if (!call) {
                ast_log(LOG_ERROR, "Could not allocate callid struct.\n");
                return NULL;
        }
 
-       using = ast_atomic_fetchadd_int(&next_unique_callid, +1);
-
-       call->call_identifier = using;
+       call->call_identifier = ast_atomic_fetchadd_int(&next_unique_callid, +1);
        ast_debug(3, "CALL_ID [C-%08x] created by thread.\n", call->call_identifier);
        return call;
 }