summaryrefslogtreecommitdiff
path: root/lib/thread.h
diff options
context:
space:
mode:
authorJorge Boncompte [DTI2] <jorge@dti2.net>2012-05-07 16:53:14 +0000
committerDavid Lamparter <equinox@opensourcerouting.org>2012-05-22 20:50:14 +0200
commit22714f99c4ffeb4d1bade7ad6374adeba0e06e4c (patch)
tree43b6e720bc05ad1bc5748d8d8a08c725a7fe6a90 /lib/thread.h
parent64018324d5e5071eea3b3f72f939d91dc7aef029 (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.h7
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 */