update thread creation code a bit

reduce standard thread stack size slightly to allow the pthreads library to allocate the stack+data and not overflow a power-of-2 allocation in the kernel and waste memory/address space
add a new stack size for 'background' threads (those that don't handle PBX calls) when LOW_MEMORY is defined


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44378 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2006-10-04 19:47:22 +00:00
parent caa0d129f2
commit ff05bf15c8
27 changed files with 83 additions and 63 deletions

View File

@@ -1075,7 +1075,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
if ((conf->recording == MEETME_RECORD_OFF) && ((confflags & CONFFLAG_RECORDCONF) || (conf->lchan))) {
pthread_attr_init(&conf->attr);
pthread_attr_setdetachstate(&conf->attr, PTHREAD_CREATE_DETACHED);
ast_pthread_create(&conf->recordthread, &conf->attr, recordthread, conf);
ast_pthread_create_background(&conf->recordthread, &conf->attr, recordthread, conf);
}
time(&user->jointime);

View File

@@ -292,7 +292,7 @@ static void launch_monitor_thread(struct ast_channel *chan, const char *filename
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
ast_pthread_create(&thread, &attr, mixmonitor_thread, mixmonitor);
ast_pthread_create_background(&thread, &attr, mixmonitor_thread, mixmonitor);
pthread_attr_destroy(&attr);
}

View File

@@ -605,7 +605,7 @@ static int statechange_queue(const char *dev, int state, void *ign)
strcpy(sc->dev, dev);
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
if (ast_pthread_create(&t, &attr, changethread, sc)) {
if (ast_pthread_create_background(&t, &attr, changethread, sc)) {
ast_log(LOG_WARNING, "Failed to create update thread!\n");
free(sc);
}