chapel-lang/chapel — pull request #42 by Kyle-B (2014-07-22 19:07:12+00:00)
Title: Move pid tracking to modules

This change moves the counter for number of privatized classes into the modules. In doing so, PRIM_NUM_PRIV_CLASSES has been removed from the compiler. PRIM_NEW_PRIV_CLASS now takes a second argument, the pid that the new object should use. This change also makes _newPrivatizedClass
re-entrant, so having a privatized member in a privatized class will no longer cause a deadlock.

There is now a per-locale lock in chpl_newPrivatizedClass. With out it, if two calls to chpl_newPrivatizedClass occur where the pid is greater than the cap, both calls will allocate a new array and replace chpl_privateObjects, causing one (or more) of the values in the array to be a garbage pointer.