Fully Re-entrant ReadWriteLock implementation