On Mon, 1 Apr 2013 01:14:11 +0200 Alfredo Solano Martínez firstname.lastname@example.org wrote:
The logic would then be something like this:
- when increasing the refcount, a thread writes only to its own subcounter,
creating one first if necessary.
- similarly, when decreasing the refcount, there is no need to access other
subcounters until that subcounter reaches zero.
- when a subcounter gets to zero, delete it, and read the other subcounters
to check if it was the last one.
But then you will decrement another subcounter, right? Meaning you need a lock around all increments / decrements.
Unfortunately, in a crude test of mine there is already a severe performance degradation, and that is without rwlocks.
Yes, there will be. Given how often INCREF and DECREF are called, any complication of their implementation will significantly decrease single-threaded performance.