-
Poul-Henning Kamp authored
Introduce a new "backend workspace" which is used for the backend transactions (bereq.*, beresp.*) Together with the "client workspace" which holds the client transaction (req.*, resp.*) this should make memory management much simpler to understand. The backend workspace lives in "busyobj" rather than the worker thread, which therefore needs a lot less stack, allowing many more threads in the same space. Experiments with thread_pool_stack are encouraged, I wouldn't be surprised if 32k is now enough. The per-thread workspace is still around, known as the "auxiallary workspace", but it is down to 256 bytes and it is only used to hand the acceptor information off to worker threads. Once the dust settles, I may remove it entirely, but I can see a value of having a small amount of fast memory in a thread, so I may also keep it. No promises. Ohh, and I removed a couple of small memory leaks which were only present in -trunk, as a result of a git-mis-merge.
1cdbbff4