summaryrefslogtreecommitdiff
path: root/main/astobj2.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/astobj2.c')
-rw-r--r--main/astobj2.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/main/astobj2.c b/main/astobj2.c
index 50886de2e..bdd70c63e 100644
--- a/main/astobj2.c
+++ b/main/astobj2.c
@@ -654,7 +654,10 @@ static void *internal_ao2_callback(struct ao2_container *c,
last = i + 1;
}
- ao2_lock(c); /* avoid modifications to the content */
+
+ if (!(flags & OBJ_NOLOCK)) {
+ ao2_lock(c); /* avoid modifications to the content */
+ }
for (; i < last ; i++) {
/* scan the list with prev-cur pointers */
@@ -738,7 +741,10 @@ static void *internal_ao2_callback(struct ao2_container *c,
last = start;
}
}
- ao2_unlock(c);
+
+ if (!(flags & OBJ_NOLOCK)) {
+ ao2_unlock(c);
+ }
/* if multi_container was created, we are returning multiple objects */
if (multi_container != NULL) {