MINOR: debug: make "show threads" properly iterate over all threads
Previously it would re-dump all threads to the same trash if the output
buffer was full, which it never was since the trash is of the same size.
Now it dumps one thread, copies it to the buffer and yields until it can
continue. Showing 256 threads works as expected.
diff --git a/src/debug.c b/src/debug.c
index a710f36..d23904d 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -370,14 +370,18 @@
else
thr = 0;
- chunk_reset(&trash);
- ha_thread_dump_all_to_trash();
+ do {
+ chunk_reset(&trash);
+ ha_thread_dump(&trash, thr);
+
+ if (applet_putchk(appctx, &trash) == -1) {
+ /* failed, try again */
+ appctx->st1 = thr;
+ return 0;
+ }
+ thr++;
+ } while (thr < global.nbthread);
- if (applet_putchk(appctx, &trash) == -1) {
- /* failed, try again */
- appctx->st1 = thr;
- return 0;
- }
return 1;
}