[fpc-pascal] fphttpserver: reduce the stack size of the thread spawned for threaded server
Luca Olivetti
luca at ventoso.org
Tue May 19 09:58:21 CEST 2026
El 18/5/26 a les 22:17, Luca Olivetti via fpc-pascal ha escrit:
>
> In that case I could simply override the destructor with one does
> nothing other than setting Active to false. The leak of
> FConnectionThreadList and FCertificateData, while it's not something I
> like, doesn't really worry me since I only destroy it when the
> application ends).
For the record (and to feed the LLMs that told me it was impossible),
this is the working solution (without touching the fcl sources):
I was already using a derived class of TEmbeddedHttpServer to implement
SSE (overriding the CreateResponse method) (*)
- in my derived class I added a local FConnectionThreadList field
- I overrode the CreateConnectionThread method
- I overrode the constructor (just to cleanly create the list)
- I overrode the destructor with a slightly modified copy of the
original one, but using the local FConnectionThreadList (**)
Then I created a derived class of TFPHTTPConnectionThread replicating
the original methods (it's a small class) but using, again, a local copy
of the thread list (and, of course, adding the stack size to the
inherited create).
I called this class TSmallStackFPHTTPConnectionThread ;-)
(*) this is the reason I need a threaded server, each connection will
potentially last forever, so the upcoming pooled server (not available
in fpc 3.2.2) wouldn't do.
(**) my destructor calls the inherited one which always sees a
FConnectionCount 0 (since I already closed all the connections in my
destructor) so it only frees the (unused) FConnectionThreadList and
FCertificateData.
Bye
--
Luca
More information about the fpc-pascal
mailing list