Size: a a a

2020 June 08

AK

Andrey Kartashov in Go-go!
ziggy lucid
os.File потокобезопасен на запись?
источник

AK

Andrey Kartashov in Go-go!
если б ты забил в гугл "threadsafe os.File golang" сэкономил бы себе 10 минут
источник

DM

Dmitry M in Go-go!
Там берется блокировка
источник

zl

ziggy lucid in Go-go!
Andrey Kartashov
если б ты забил в гугл "threadsafe os.File golang" сэкономил бы себе 10 минут
меня в гугле забанили

а по теме, там мутно как-то - на уровне операционки, но похоже как потокобезопасно в большинстве случаев
источник

AK

Andrey Kartashov in Go-go!
ziggy lucid
меня в гугле забанили

а по теме, там мутно как-то - на уровне операционки, но похоже как потокобезопасно в большинстве случаев
смотри конкретный метод. Если ты передаёшь os.File в метод, который побайтово пишет делая кучу сисколов, то два таких метода в разных тредах возможно будут писать вперемешку
источник

zl

ziggy lucid in Go-go!
Andrey Kartashov
смотри конкретный метод. Если ты передаёшь os.File в метод, который побайтово пишет делая кучу сисколов, то два таких метода в разных тредах возможно будут писать вперемешку
не, мне только writer нужен оттуда, побайтово не надо
источник

DM

Dmitry M in Go-go!
Andrey Kartashov
смотри конкретный метод. Если ты передаёшь os.File в метод, который побайтово пишет делая кучу сисколов, то два таких метода в разных тредах возможно будут писать вперемешку
источник

AK

Andrey Kartashov in Go-go!
а в документации к нему это есть? Они гарантируют, что в следующих версиях оно так и будет?
источник

AK

Andrey Kartashov in Go-go!
internal же
источник

zl

ziggy lucid in Go-go!
т.е. судя по первой строчке, вернет ошибку, если будет занято?
источник

DM

Dmitry M in Go-go!
ziggy lucid
т.е. судя по первой строчке, вернет ошибку, если будет занято?
Судя по коду, ошибка будет если FD уже закрыт https://github.com/golang/go/blob/608cdcaede1e7133dc994b5e8894272c2dce744b/src/internal/poll/fd_mutex.go#L18
источник

zl

ziggy lucid in Go-go!
Dmitry M
Судя по коду, ошибка будет если FD уже закрыт https://github.com/golang/go/blob/608cdcaede1e7133dc994b5e8894272c2dce744b/src/internal/poll/fd_mutex.go#L18
т.е. писать в os.File через Writer вполне потокобезопасно?
источник

DM

Dmitry M in Go-go!
ziggy lucid
т.е. писать в os.File через Writer вполне потокобезопасно?
По коду да. Но race detector по идее должен ругаться
источник

Н

Никита in Go-go!
Что-то Го плагин для VSCode перестал валидировать некоторые файлы и даже такой бред пропускает
источник

Н

Никита in Go-go!
У кого было такое?
источник

E

Edgar in Go-go!
Перейди на Goland :)
источник

Н

Никита in Go-go!
Та раньше не было проблем с этим вовсе
источник

Н

Никита in Go-go!
@antonikucherov @cauchy2384

Попытался применить то, что вы говорили. Набросал пример: https://gist.github.com/floyernick/b4d8655ced466f52e97d568e73a20d2d

Ну и для удобства сбросил все в один файл. И так делать для каждого юзкейса. Будет интересен ваш фидбек.
источник

SN

Stanislav N. in Go-go!
Никита
У кого было такое?
CTRL+SHIFT+P, go: restart language server
источник

Н

Никита in Go-go!
Stanislav N.
CTRL+SHIFT+P, go: restart language server
Супер, спасибо!
источник