First of all I don't know where to post this, I can't seem to find a "developer forum" so I'll post here cause I'm a linux user and I know this is being read by at least one dev.
I've been looking at the sources a bit here and there and this class caught my attention:
It looks to be a class from which you inherit to create reference counting in your child class...
But the LLThreadSafeRefCount uses a static pointer to a mutex, meaning that one mutex is shared between all instances of any given child class, now this could cause problems if say for example the texture class inherits from this (as it does IIRC) and many different textures get accessed here and there, with one shared mutex all threads wanting to access any given texture are serialized into a queue, instead of just queuing up any threads wanting to access a specific texture, should the mutex be non-static.
I'm aware of that mutexes shouldn't be copied but there are other ways to work around this.
From my point of view the current design of LLThreadSafeRefCount looks as a bad one, could any one please enlighten me on this design choice? Have I misread the code? Or are the accesses to textures so spread out that they will not cause blocking in a significant number of cases?