add 'show threads' and 'show profile' commands.

These are momstly debugging tools for developers,
a bit documented in the header files (utils.h),
although more documentation is definitely necessary.

The performance impact is close to zero(*) so there is no
need to compile it conditionally.
(*) not completely true - thread destruction still needs
to search a list _but_ this can be easily optimized if we
end up with hundreds of active threads (in which case, though,
the problem is clearly elsewhere).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@19544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Luigi Rizzo
2006-04-12 20:40:46 +00:00
parent 8f09c4345f
commit 2876a25505
7 changed files with 354 additions and 4 deletions

View File

@@ -225,8 +225,14 @@ static force_inline int inaddrcmp(const struct sockaddr_in *sin1, const struct s
}
#define AST_STACKSIZE 256 * 1024
#define ast_pthread_create(a,b,c,d) ast_pthread_create_stack(a,b,c,d,0)
int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize);
void ast_register_thread(char *name);
void ast_unregister_thread(void *id);
#define ast_pthread_create(a,b,c,d) ast_pthread_create_stack(a,b,c,d,0, \
__FILE__, __FUNCTION__, __LINE__, #c)
int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize,
const char *file, const char *caller, int line, const char *start_fn);
/*!
\brief Process a string to find and replace characters