История изменений
Исправление 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 захвачен. Если это будет обеспечиваться как-то ещё, то можно это поле убрать.