gforth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Memory leak in unix/pthread.fs


From: paul . ortais
Subject: Re: Memory leak in unix/pthread.fs
Date: Sat, 12 Nov 2022 19:11:19 +0100



Great contribution, thank you very much

ZP

Le 2022-11-08 15:38, nature a écrit :

Hi,

I am working on a web server written in pure Forth and I am using gforth
as the implementation I develop on.  Serving multiple requests without
blocking requires me to venture into the realm of multi-threading and
gforth's experimental support for pthread has been a blessing.  It may
be good for me to mention that I work on UNIX (OpenBSD).

Now instead of doing like in cilk.fs and spawning a few workers and
offloading requests to them, I prefer to create a separate thread each
time a request comes and this led me to notice that my server wasn't
able to serve more than ~3k requests before hanging and also the memory
usage of my process increased a lot with each new request comming in. I
then proceeded to hunt down memory leaks due to the S" S\" and S+ words
with minimal impact.  That is what lead me to realize that creating new
threads with the PASS word was creating non-detached thread which never
freed the memory once the thread exited.

I am attaching a patch for unix/pthread.fs which fixed the big memory
leak for me, my server is no able to server well above 3k requests
without hanging/crashing (I tested 10 without any issues).

Also optionally I am attaching another patch for cilk.fs just to
correctly get the number of cores on OpenBSD.

Thank you for the great work on gforth, I can't wait for the official
1.0 to release so that OpenBSD ports won't be stuck with 0.7.3 forever! :D

Cheers,


reply via email to

[Prev in Thread] Current Thread [Next in Thread]