So was this method provided to check if you own a lock? It not only gives you the information isLocked/ isNotLocked, but also "I locked it" instead of "someone locked it". If this is correct, such a method might really be needed. Although protected should be enough...

What I think about are implementations that don't support recursive locks.

Imagine something like this:

```php
class A
{
  const MTX_JOB_QUEUE = 'MTX_JOB_QUEUE';

  public function a()
  {
    $app->mutex->lock( self::MTX_JOB_QUEUE );
    // do stuff

    // somewhere in between
    $this->b();

    // do more stuff
    $app->mutex->unlock( self::MTX_JOB_QUEUE );
  }

  public function b()
  {
    $app->mutex->lock( self::MTX_JOB_QUEUE );
    // do stuff
    $app->mutex->unlock( self::MTX_JOB_QUEUE );
  }
}
```

In this example if the mutex implementation doesn't allow recursive locking, `b()` will time out, because it can't get the lock. It has been locked by `a()` and `a()` won't release it until `b()` returns.

If we have a method that allows to check if we already own the lock, `Mutex::lock()` can do the check and eventually does not need to perform locking.