mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 11:42:27 +00:00
Make stack size be selectable
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -161,11 +161,11 @@ struct ast_realloca {
|
|||||||
#define inet_ntoa __dont__use__inet_ntoa__use__ast_inet_ntoa__instead__
|
#define inet_ntoa __dont__use__inet_ntoa__use__ast_inet_ntoa__instead__
|
||||||
|
|
||||||
#define AST_STACKSIZE 128 * 1024
|
#define AST_STACKSIZE 128 * 1024
|
||||||
|
#define ast_pthread_create(a,b,c,d) ast_pthread_create_stack(a,b,c,d,0)
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#define ast_strcasestr strcasestr
|
#define ast_strcasestr strcasestr
|
||||||
#else
|
#else
|
||||||
extern char *ast_strcasestr(const char *, const char *);
|
extern char *ast_strcasestr(const char *, const char *);
|
||||||
#endif /* __linux__ */
|
#endif /* __linux__ */
|
||||||
extern int ast_pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data);
|
extern int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize);
|
||||||
#endif
|
#endif
|
||||||
|
6
utils.c
6
utils.c
@@ -389,14 +389,16 @@ int ast_utils_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ast_pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data)
|
int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize)
|
||||||
{
|
{
|
||||||
pthread_attr_t lattr;
|
pthread_attr_t lattr;
|
||||||
if (!attr) {
|
if (!attr) {
|
||||||
pthread_attr_init(&lattr);
|
pthread_attr_init(&lattr);
|
||||||
attr = &lattr;
|
attr = &lattr;
|
||||||
}
|
}
|
||||||
errno = pthread_attr_setstacksize(attr, AST_STACKSIZE);
|
if (!stacksize)
|
||||||
|
stacksize = AST_STACKSIZE;
|
||||||
|
errno = pthread_attr_setstacksize(attr, stacksize);
|
||||||
if (errno)
|
if (errno)
|
||||||
ast_log(LOG_WARNING, "pthread_attr_setstacksize returned non-zero: %s\n", strerror(errno));
|
ast_log(LOG_WARNING, "pthread_attr_setstacksize returned non-zero: %s\n", strerror(errno));
|
||||||
return pthread_create(thread, attr, start_routine, data); /* We're in ast_pthread_create, so it's okay */
|
return pthread_create(thread, attr, start_routine, data); /* We're in ast_pthread_create, so it's okay */
|
||||||
|
Reference in New Issue
Block a user