Size: a a a

Rust — русскоговорящее сообществo

2020 August 17

V

Vladimir in Rust — русскоговорящее сообществo
@HifiMe если без мьютекса, то просто
let fs = Arc::new(File::open(..));

thread::spawn(move ||{
fs.write(..);
fs.read(..);
});
Должно работать
источник

b

in Rust — русскоговорящее сообществo
не, без мьютекса не работает
источник

b

in Rust — русскоговорящее сообществo
Arc не дает доступа к File
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Лучше в беггинерсах
источник

V

Vladimir in Rust — русскоговорящее сообществo
Arc не дает доступа к File
но дает к &file, чего должно хватить для write/read
источник

b

in Rust — русскоговорящее сообществo
не, у меня и этого не получилось достать
источник

t

this is not mrklf in Rust — русскоговорящее сообществo
Vladimir
но дает к &file, чего должно хватить для write/read
а write-у не нужен &mut file?
источник

V

Vladimir in Rust — русскоговорящее сообществo
не, у меня и этого не получилось достать
источник

V

Vladimir in Rust — русскоговорящее сообществo
this is not mrklf
а write-у не нужен &mut file?
Да, для метода write нужен &mut self -> по этому придется добавлять промежуточную перменную
let mut fs: &File;

но при этом тип переменной может быть и &File
источник

В

Вафель in Rust — русскоговорящее сообществo
Альтернативно можно вызвать дереф руками: arc.deref().write(b"x")
источник

K

Kitsu in Rust — русскоговорящее сообществo
Вафель
Альтернативно можно вызвать дереф руками: arc.deref().write(b"x")
но зачем?
источник

b

in Rust — русскоговорящее сообществo
у arc нет deref
источник

K

Kitsu in Rust — русскоговорящее сообществo
у arc нет deref
источник

В

Вафель in Rust — русскоговорящее сообществo
Kitsu
но зачем?
Чтобы не делать лишнюю переменную
источник

b

in Rust — русскоговорящее сообществo
такое будет работать только с одним потоком, а если несколько - то всё, а я добивался именно возможности писать из нескольких тредов
источник

b

in Rust — русскоговорящее сообществo
источник

В

Вафель in Rust — русскоговорящее сообществo
у arc нет deref
источник

t

this is not mrklf in Rust — русскоговорящее сообществo
Vladimir
Да, для метода write нужен &mut self -> по этому придется добавлять промежуточную перменную
let mut fs: &File;

но при этом тип переменной может быть и &File
так, а это как? &T -> &mut T?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
this is not mrklf
так, а это как? &T -> &mut T?
&T -> &mut &T
источник

V

Vladimir in Rust — русскоговорящее сообществo
такое будет работать только с одним потоком, а если несколько - то всё, а я добивался именно возможности писать из нескольких тредов
ну тут точно в бегинерс. Если код работает с одним thread::spawn о будет работать с сколько угодно тредами
источник