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