ev
reply
?И чем это лучше чем вернуть в
reply
?Size: a a a
ev
reply
?reply
?LL
ev
cast
это ещё одно сообщениеreply
LL
cast
, усложняя код и пониманиеev
cast
, усложняя код и пониманиеLL
message box
до reply
ev
message box
до reply
LL
p1 sends call to p2
p2 sends reply to p1
p1 sends call to p2
p2 sends cast to p1
p2 sends reply to p1
ev
LL
ev
p1 sends call to p2
p2 sends reply to p1
p1 sends call to p2
p2 sends cast to p1
p2 sends reply to p1
LL
call-reply
банально проще чем call-cast-reply
, потому что первое более надёждное. Вариант где call-cast-reply
неправильно сработает есть и не такой уж и тривиальный на первый взгляд: Между cast
и reply
в tcp
-процесс сможет попасть ещё какое-нибудь сообщение, которое будет рассчитывать что процесс ещё находится в старом состоянии (без аттрибутов) и оно будет обработано с аттрибутами (из-за cast
), но перед тем как какая-либо информация попадёт на клиент. Конечно, это может и не навредить и зависит от специфики этого tcp
-процесса, но у вас нет никаких гарантий, что в будущем это не сможет породить какой-нибудь сложный и трудно отлавливаемый баг (потому что он связан с порядком сообщений, а такое трудно ловить)gen_statem
, но лучше пока прототип на gen_server
запилить.ev
call-reply
банально проще чем call-cast-reply
, потому что первое более надёждное. Вариант где call-cast-reply
неправильно сработает есть и не такой уж и тривиальный на первый взгляд: Между cast
и reply
в tcp
-процесс сможет попасть ещё какое-нибудь сообщение, которое будет рассчитывать что процесс ещё находится в старом состоянии (без аттрибутов) и оно будет обработано с аттрибутами (из-за cast
), но перед тем как какая-либо информация попадёт на клиент. Конечно, это может и не навредить и зависит от специфики этого tcp
-процесса, но у вас нет никаких гарантий, что в будущем это не сможет породить какой-нибудь сложный и трудно отлавливаемый баг (потому что он связан с порядком сообщений, а такое трудно ловить)gen_statem
, но лучше пока прототип на gen_server
запилить.LL
tcp
-процесс после cast
, но до reply
?ŹR
call-reply
банально проще чем call-cast-reply
, потому что первое более надёждное. Вариант где call-cast-reply
неправильно сработает есть и не такой уж и тривиальный на первый взгляд: Между cast
и reply
в tcp
-процесс сможет попасть ещё какое-нибудь сообщение, которое будет рассчитывать что процесс ещё находится в старом состоянии (без аттрибутов) и оно будет обработано с аттрибутами (из-за cast
), но перед тем как какая-либо информация попадёт на клиент. Конечно, это может и не навредить и зависит от специфики этого tcp
-процесса, но у вас нет никаких гарантий, что в будущем это не сможет породить какой-нибудь сложный и трудно отлавливаемый баг (потому что он связан с порядком сообщений, а такое трудно ловить)gen_statem
, но лучше пока прототип на gen_server
запилить.ev
tcp
-процесс после cast
, но до reply
?LL
p1 sends call to p2
p3 sends msg to p1
p2 sends cast to p1
p2 sends reply to p1
p2
сообщения обработаются в таком порядке: reply, msg, cast
tcp
-процесса во время msg
не совсем ясноŹR
ŹR
LL
reply
клиенту