Removing The Global GC Lock: Largest Plausible Number of Threads?

Jonathan M Davis jmdavisProg at gmx.com
Wed May 11 21:33:26 PDT 2011


On 2011-05-11 21:14, dsimcha wrote:
> I'm thinking about ways to remove the global lock from the garbage
> collector for most small allocations.  I'm basically thinking of making
> the free lists thread local.  Every scheme I can come up with that
> doesn't require a radical overhaul of the current implementation
> requires every thread having a unique ID.  I want to do this as simply
> and efficiently as possible, preferably using dense integers.  Is it
> reasonable to assume that no program will ever need more than 2 ^^ 16
> thread (about 65,000) simultaneously so that I can store these indices
> as ushorts?  If a program creates a lot of short-lived threads, the
> indices will be recycled, so having a huge number of threads
> non-simultaneously is not a problem.

I don't think that you can legally create that many threads on a typical OS. 
I'd have to check, but as I recall, the typical limit is much lower than that 
- still in the tens of thousands, I think, but not that high.

- Jonathan M Davis


More information about the Digitalmars-d mailing list