mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-19 16:20:37 +00:00
Add a new API call for creating detached threads. Then, go replace all of the
places in the code where the same block of code for creating detached threads was replicated. (patch from bbryant) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1033,7 +1033,6 @@ static void *do_batch_backend_process(void *data)
|
||||
void ast_cdr_submit_batch(int shutdown)
|
||||
{
|
||||
struct ast_cdr_batch_item *oldbatchitems = NULL;
|
||||
pthread_attr_t attr;
|
||||
pthread_t batch_post_thread = AST_PTHREADT_NULL;
|
||||
|
||||
/* if there's no batch, or no CDRs in the batch, then there's nothing to do */
|
||||
@@ -1053,16 +1052,13 @@ void ast_cdr_submit_batch(int shutdown)
|
||||
ast_log(LOG_DEBUG, "CDR single-threaded batch processing begins now\n");
|
||||
do_batch_backend_process(oldbatchitems);
|
||||
} else {
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
|
||||
if (ast_pthread_create_background(&batch_post_thread, &attr, do_batch_backend_process, oldbatchitems)) {
|
||||
if (ast_pthread_create_detached_background(&batch_post_thread, NULL, do_batch_backend_process, oldbatchitems)) {
|
||||
ast_log(LOG_WARNING, "CDR processing thread could not detach, now trying in this thread\n");
|
||||
do_batch_backend_process(oldbatchitems);
|
||||
} else {
|
||||
if (option_debug)
|
||||
ast_log(LOG_DEBUG, "CDR multi-threaded batch processing begins now\n");
|
||||
}
|
||||
pthread_attr_destroy(&attr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user