Каков правильный термин для объекта или ссылки / указателя со связанной блокировкой? - PullRequest
0 голосов
/ 02 марта 2020

Что-то похожее, Псевдокод:

template<class T, class M>
struct X {
  std::unique_lock<M> associated_lock_;
  T* associated_obj_;
};

Вариант использования:

{
  X x = getObj();//locking occurs
  //do something with x.associated_obj_
}//x gets unlocked due to scope exit

Я что-то думал в строках "Оформить заказ" или «Доступ», если это сообщит смысл. «Контрольно-пропускной пункт», вероятно, плохо. «ConcurrentY» или «ConcurrentObject», как правило, является приемлемым наименованием, например, для. класс ConcurrentMap, но это кажется неправильным в этом контексте, потому что это не то, где сам механизм блокировки раскрывается, как здесь.

1 Ответ

1 голос
/ 02 марта 2020

Каков правильный термин для объекта или ссылки / указателя со связанной блокировкой?

Если объект недоступен без методов блокировки (private с блокирующими средствами доступа), затем мы говорим, что это поточно-безопасный .

Если оболочка получает ресурс при создании и заботится об освобождении при уничтожении (как, например, std::lock_guard), мы скажем, что это RAII (получение ресурсов является инициализацией).

Но эти условия применяются для определения оболочки (X в вашем примере), а не внутренней объект (поэтому я не уверен, что этот ответ действительно то, что вы ищете).


Редактировать: При рассмотрении вашего варианта использования кажется, что правильный термин здесь RAII, так как блокировка привязана к времени жизни объекта (именно это и есть RAII).

...