Size: a a a

2020 March 10

СИ

Сергей Иванов in ErlangRus
Чайлды с линками
источник

V

Vasilii Demidenok in ErlangRus
резонно. просто операции чтения могут быть очень короткими поэтому и хотел контенш убрать. но пойду мерить пожалуй
источник

V

Vasilii Demidenok in ErlangRus
Сергей Иванов
Чайлды с линками
ну я это и имел ввиду в каком-то смысле когда говорил про lock_agents
источник

V

Vasilii Demidenok in ErlangRus
клиента могут килять, поэтому нужно освобождение лока, но если есть proxy, то пусть киляют, прокси разблокирует лок
источник

AK

Aleksey Kluchnikov in ErlangRus
А ген сервер может не подойти ведь. У него сообщения о крешах встают же в очередь, не первыми пролазят?
источник

AK

Aleksey Kluchnikov in ErlangRus
возможно надо на ! receive мутить все
источник

ML

Maksim Lapshin in ErlangRus
Vasilii Demidenok
честно говоря от ets:update_elem я ожидаю меньшего оверхеда чем gen_server:call. оригинальная идея была в том, что ходить в блокирующем виде только когда мы переключаемся из read в write
ты лучше думай о рейс кондишнах, чем о мифических тормозах =)
источник

V

Vasilii Demidenok in ErlangRus
Maksim Lapshin
ты лучше думай о рейс кондишнах, чем о мифических тормозах =)
я о них и не забываю :D
источник

V

Vasilii Demidenok in ErlangRus
Maksim Lapshin
ты лучше думай о рейс кондишнах, чем о мифических тормозах =)
там смысл был в том что можно атомарно заблокировать всех новых читателей и перенаправить тех, что хочет освободить лок на генсервер.
источник

AK

Aleksey Kluchnikov in ErlangRus
А можно и генсервер, но в lock вызове надо будет мутить что то типа
lock(State, From, Pid) ->
 gen_server:reply(From, locked),
 link(Pid) %или monitor
 receive
   unlock -> {noreply, State};
   {'DOWN', _,_,_} -> {noreply, State}
...
источник

AK

Aleksey Kluchnikov in ErlangRus
Это если от блокировщика мютекс хотеть
источник

V

Vasilii Demidenok in ErlangRus
Леш я в курсе как это сделать на ген сервере, спасибо)
источник

AK

Aleksey Kluchnikov in ErlangRus
Вопрос к знатокам, gen_server:call делает же monitor?
источник

AK

Aleksey Kluchnikov in ErlangRus
а gen_server:reply Снимает его?
источник

AK

Aleksey Kluchnikov in ErlangRus
Vasilii Demidenok
Леш я в курсе как это сделать на ген сервере, спасибо)
Просто это хоть и относительно не большая но интересная и нюансная задачка
источник

V

Vasilii Demidenok in ErlangRus
открой gen_server и gen, посмотришь как оно устроено, но если кратко, то да, мониторит
источник

AK

Aleksey Kluchnikov in ErlangRus
Vasilii Demidenok
открой gen_server и gen, посмотришь как оно устроено, но если кратко, то да, мониторит
кто кого? :) вызвыающий вызываемого? а тут надо наоборот
источник

AK

Aleksey Kluchnikov in ErlangRus
В общем надо написать и оформить либу и на гитхаб выложить
источник

AK

Aleksey Kluchnikov in ErlangRus
фиг знает правда зачем оно надо
источник

СИ

Сергей Иванов in ErlangRus
Vasilii Demidenok
ну я это и имел ввиду в каком-то смысле когда говорил про lock_agents
я там опечатался - get_supervisor имел ввиду, а не observer (чайлды-локи с линками {error,{already_started,Child}} и вот это вот всё)
источник