diff options
author | Jorge Boncompte [DTI2] <jorge@dti2.net> | 2012-05-07 16:53:14 +0000 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2012-05-22 20:50:14 +0200 |
commit | 22714f99c4ffeb4d1bade7ad6374adeba0e06e4c (patch) | |
tree | 43b6e720bc05ad1bc5748d8d8a08c725a7fe6a90 /lib/thread.h | |
parent | 64018324d5e5071eea3b3f72f939d91dc7aef029 (diff) |
lib: do not allocate/free thread funcnames
This avoids memory heap fragmentation and imposses less load on the
system memory allocator.
* thread.h: FUNCNAME_LEN defined to 64 (ISO C99 says max 63)
Signed-off-by: Jorge Boncompte [DTI2] <jorge@dti2.net>
[changed FUNCNAME_LEN to a less arbitrary value]
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'lib/thread.h')
-rw-r--r-- | lib/thread.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/thread.h b/lib/thread.h index 56f4d073..67902cf6 100644 --- a/lib/thread.h +++ b/lib/thread.h @@ -62,6 +62,9 @@ struct thread_master typedef unsigned char thread_type; +/* ISO C99 maximum function name length is 63 */ +#define FUNCNAME_LEN 64 + /* Thread itself. */ struct thread { @@ -79,13 +82,12 @@ struct thread } u; struct timeval real; struct cpu_thread_history *hist; /* cache pointer to cpu_history */ - char* funcname; + char funcname[FUNCNAME_LEN]; }; struct cpu_thread_history { int (*func)(struct thread *); - char *funcname; unsigned int total_calls; struct time_stats { @@ -95,6 +97,7 @@ struct cpu_thread_history struct time_stats cpu; #endif thread_type types; + char funcname[FUNCNAME_LEN]; }; /* Clocks supported by Quagga */ |