private void OnQueueItemFinished(MyLockQueueItem queueItem)
        {
            MyLockQueueItem nextToStart = null;

            lock (_lock)
            {
                if (_queue.FirstOrDefault() == queueItem)
                {
                    _queue.RemoveAt(0);
                    nextToStart = _queue.FirstOrDefault();
                }
                else
                {
                    // This probably shouldn't happen, but just in case...
                    _queue.Remove(queueItem);
                }
            }

            nextToStart?.EnterLock();
        }
 public MyDisposableLock(MyLockQueueItem queueItem)
 {
     _queueItem = queueItem;
 }