LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Я хочу сделать структуру, которая при блокировке будет держать в себе MutexGuard и, соответственно, иметь в своих методах возможность читать/писать в защищаемую структуру (так что да, по факту обёртка содержит в себе ссылку на исходное значение, но в первую очередь косвенно через потроха MutexGuard). А при Drop этой структуры блокировка отпустится.

Поле _data у обёртки есть исключительно из соображений, чтобы память не освободилась, пока Mutex захвачен (у Arc была хотя бы одна ссылка). Если это будет обеспечиваться как-то ещё, то можно это поле убрать.

Исправление KivApple, :

Я хочу сделать структуру, которая при блокировке будет держать в себе MutexGuard и, соответственно, иметь в своих методах возможность читать/писать в защищаемую структуру (так что да, по факту обёртка содержит в себе ссылку на исходное значение, но косвенно через потроха MutexGuard). А при Drop этой структуры блокировка отпустится.

Поле _data у обёртки есть исключительно из соображений, чтобы память не освободилась, пока Mutex захвачен (у Arc была хотя бы одна ссылка). Если это будет обеспечиваться как-то ещё, то можно это поле убрать.

Исправление KivApple, :

Я хочу сделать структуру, которая при блокировке будет держать в себе MutexGuard и, соответственно, иметь в своих методах возможность читать/писать в защищаемую структуру. А при Drop этой структуры блокировка отпустится.

Поле _data у обёртки есть исключительно из соображений, чтобы память не освободилась, пока Mutex захвачен (у Arc была хотя бы одна ссылка). Если это будет обеспечиваться как-то ещё, то можно это поле убрать.

Исходная версия KivApple, :

Я хочу сделать структуру, которая при блокировке будет держать в себе MutexGuard и, соответственно, иметь в своих методах возможность читать/писать в защищаемую структуру. А при Drop этой структуры блокировка отпустится.

Поле _data у обёртки есть исключительно из соображений, чтобы память не освободилась, пока Mutex захвачен. Если это будет обеспечиваться как-то ещё, то можно это поле убрать.