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
