protected async Task WaitAsync(string conditional)
        {
            if (!_locked)
            {
                throw new DistributedLockingException("WaitAsync() can be called only when object is locked (use LockAsync() first)");
            }
            if (!Conditionals.Contains(conditional))
            {
                throw new DistributedLockingException($"Conditional [{conditional}] not defined");
            }
            await _actor.Ask(new InternalMessages.AskWait(conditional));

            return;
        }