¿Cómo compruebo si un objeto está siendo sincronizado?

A veces escribí el siguiente código para sincronizar una rutina:

@synchronized(objToBeSync){ .... }

Cuando dos subprocesos intentan acceder al bloque de sincronización al mismo tiempo, uno bloqueará los otros hasta que salga del bloque de sincronización.

Sin embargo, a veces no quiero que uno bloquee al otro, pero los otros comprueban si el objeto se está sincronizando, y luego hago otra cosa, así que tengo que hacer algo como esto:

@synchronized(objToBeSync){
    _isBeingSync = YES;
    ... 
    _isBeingSync = NO;
}

_isBeingSync es una var adicional en la verificación de si objToBeSync se está sincronizando. Los otros hilos verifican._isBeingSync Antes de que continúen su trabajo. Y mi pregunta es si objc proporciona algo para verificar objToBeSync directamente pero no introduce una var adicional para marcar su estado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta