mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-03-14 11:31:59 +01:00
MINOR: tools: add a function to write a thread execution context.
The new function chunk_append_thread_ctx() appends to a buffer the given execution context based on its type and pointer. The goal is to easily use it in profiling output and thread dumps. For now it only handles TH_EX_CTX_NONE (which prints nothing) and TH_EX_CTX_OTHER (which indicates "other ctx" followed by the pointer). It will be extended by new types as they arrive.
This commit is contained in:
parent
13c89bf20d
commit
5d3246205b
@ -1540,4 +1540,6 @@ void ha_freearray(char ***array);
|
||||
|
||||
void ha_memset_s(void *s, int c, size_t n);
|
||||
|
||||
void chunk_append_thread_ctx(struct buffer *output, const struct thread_exec_ctx *ctx, const char *pfx, const char *sfx);
|
||||
|
||||
#endif /* _HAPROXY_TOOLS_H */
|
||||
|
||||
22
src/tools.c
22
src/tools.c
@ -7502,6 +7502,28 @@ void ha_memset_s(void *s, int c, size_t n)
|
||||
__asm__ __volatile__("" : : "r"(s) : "memory");
|
||||
}
|
||||
|
||||
/* Optionally appends the thread execution context as a string to the output,
|
||||
* prefixed with <pfx> and suffixed with <sfx> if not NULL and only when the
|
||||
* context type is not TH_EX_CTX_NONE. Otherwise it does nothing and leaves the
|
||||
* chunk untouched.
|
||||
*/
|
||||
void chunk_append_thread_ctx(struct buffer *output, const struct thread_exec_ctx *ctx, const char *pfx, const char *sfx)
|
||||
{
|
||||
if (!ctx->type)
|
||||
return;
|
||||
|
||||
chunk_appendf(output,"%s", pfx ? pfx : "");
|
||||
|
||||
switch (ctx->type) {
|
||||
default:
|
||||
chunk_appendf(output,"other ctx %p", ctx->pointer);
|
||||
break;
|
||||
}
|
||||
|
||||
chunk_appendf(output,"%s", sfx ? sfx : "");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* c-indent-level: 8
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user