Size: a a a

Эликсир и Вунш

2019 October 02

GK

Gleb Kolokolov in Эликсир и Вунш
Да например запись в файл
источник

ŹR

Źmićer Rubinštejn in Эликсир и Вунш
Gleb Kolokolov
Не важно что. Важно как реализовать тредсейфти тогда?
Чтобы писать в файл его надо открыть, написать и закрыть
источник

ŹR

Źmićer Rubinštejn in Эликсир и Вунш
Второй процесс не сможет открыть файл пока первый его не закрыл
источник

IK

Ihor Katkov in Эликсир и Вунш
Gleb Kolokolov
Не важно что. Важно как реализовать тредсейфти тогда?
мнопоточность безопасная, никакого тредсейфти не нужно
источник

TT

Taras 🦀 Taraskin in Эликсир и Вунш
Taras 🦀 Taraskin
пожалуйста, скриншот
и подробную инструкцию, как воспроизвести
пока лично руками не помацаю — не верю
(с) Хома Неверующий
источник

IK

Ihor Katkov in Эликсир и Вунш
у каждого процесса свой инбокс сообщений, обрабатывает один за одним
источник

ŹR

Źmićer Rubinštejn in Эликсир и Вунш
Это не ошибка операционки, просто File.open вернет error
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Ihor Katkov
у каждого процесса свой инбокс сообщений, обрабатывает один за одним
Если я в ресиве делаю спаун он же не ждет ответа
источник

GK

Gleb Kolokolov in Эликсир и Вунш
А примет сразу следующее
источник

IK

Ihor Katkov in Эликсир и Вунш
тогда да, запустится еще один процесс который работает на longfun
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Я ж не линкую в дерево супервизора. Просто запустил и ответа не жду
источник

IK

Ihor Katkov in Эликсир и Вунш
Gleb Kolokolov
Я ж не линкую в дерево супервизора. Просто запустил и ответа не жду
но так не нужно делать
источник

TT

Taras 🦀 Taraskin in Эликсир и Вунш
Gleb Kolokolov
Если я в ресиве делаю спаун он же не ждет ответа
можно спаунить,
можно вынести в отдельную функцию,
можно отправить другому процессу и ждать от него ответ,
можно же по-разному
можно много способов придумать, как что-то сделать
источник

IK

Ihor Katkov in Эликсир и Вунш
по нескольким причинам. Одна из них, если твой spawn процесс упадет, то упадет и генсервер
источник

AV

Andrew Volozhanin in Эликсир и Вунш
можно Genserver.call/cast вызвать с вызовом longfun внутри handle_call/cast.
т.к. genserver внутри однопоточный, получится своего рода mutex.
если ничего не путаю
источник

IK

Ihor Katkov in Эликсир и Вунш
Andrew Volozhanin
можно Genserver.call/cast вызвать с вызовом longfun внутри handle_call/cast.
т.к. genserver внутри однопоточный, получится своего рода mutex.
если ничего не путаю
все так, опередил
источник

AV

Andrew Volozhanin in Эликсир и Вунш
Genserver.call соответственно заблокирует вызываюзщий процесс , cast нет
источник

TT

Taras 🦀 Taraskin in Эликсир и Вунш
Gleb Kolokolov
Я ж не линкую в дерево супервизора. Просто запустил и ответа не жду
так може же динамически детей-воркеров создавать
https://github.com/yzh44yzh/practical_erlang/blob/master/12_supervisor/lesson_12.md
источник

GK

Gleb Kolokolov in Эликсир и Вунш
Ihor Katkov
по нескольким причинам. Одна из них, если твой spawn процесс упадет, то упадет и генсервер
А если отдельный тасксупервизор в генсервер. И им  запускать таски. И не ждать ответа
источник

GK

Gleb Kolokolov in Эликсир и Вунш
При краше генсервер выживет?
источник