Removing The Global GC Lock: Largest Plausible Number of Threads?
dsimcha
dsimcha at yahoo.com
Wed May 11 21:14:54 PDT 2011
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.
More information about the Digitalmars-d
mailing list