Removing The Global GC Lock: Largest Plausible Number of Threads?
Kagamin
spam at here.lot
Thu May 12 00:03:50 PDT 2011
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.
version(Slim) {
alias ushort threadid_t;
} else {
alias uint threadid_t;
}
?
More information about the Digitalmars-d
mailing list