Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2010-10

Re: Re: Multi-threaded project with few locks (no Thread.waitfor). Memory consumption keeps increasing on Ubuntu 10.10 x64

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Vinzent Höfler
Luca Olivetti wrote 9 lines
Al 16/10/10 16:57, En/na Vinzent Höfler ha escrit: > > Well, the usual implementation of an externally called "Destroy" is > > - first a call to the Terminate method > - then a WaitFor() Nope, I avoid the WaitFor.

Nice for you, but I'd rather avoid polling solutions.

I usually do a while not FFinished do CheckSynchronize(100);

Check again. You can't even access FFinished from a foreign thread.

Vinzent.

Luca Olivetti
to Vinzent Höfler

Al 16/10/10 17:49, En/na Vinzent Höfler ha escrit:

Show quoted text 13 lines
On Sat, 16 Oct 2010 17:42:03 +0200, Luca Olivetti wrote: > Al 16/10/10 16:57, En/na Vinzent Höfler ha escrit: > >> >> Well, the usual implementation of an externally called "Destroy" is >> >> - first a call to the Terminate method >> - then a WaitFor() > > Nope, I avoid the WaitFor. Nice for you, but I'd rather avoid polling solutions.

I use that only for threads I start at the beginning of the app and terminate at the end, so polling isn't a big issue. In fact I break the operation in two: first I Terminate all running threads, then I check if they're finished (so that they all have time to stop in parallel).
It's not strictly necessary since the OS will clean up everything afterwards, but I prefer to do things properly.

Show quoted text 7 lines
> I usually do a > > while not FFinished do > CheckSynchronize(100); Check again. You can't even access FFinished from a foreign thread.

I can (FFinished is a private member defined by me, and Destroy, being a method of the same class, can access private members).

Bye

Luca