implementado rwlock