diff --git a/main/cdr.c b/main/cdr.c index 44cf1c3d220eb455f0960e1235fee9a52df304d7..416895de550b5b3db2e90fb397969b2d8d47e0b5 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -1424,11 +1424,13 @@ void ast_cdr_detach(struct ast_cdr *cdr) newtail->cdr = cdr; batch->tail = newtail; curr = batch->size++; - ast_mutex_unlock(&cdr_batch_lock); /* if we have enough stuff to post, then do it */ - if (curr >= (batchsize - 1)) + if (curr >= (batchsize - 1)) { submit_unscheduled_batch(); + } + + ast_mutex_unlock(&cdr_batch_lock); } static void *do_cdr(void *data)