You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FM-283] 상점 검색기(부엉이) 검색 응답 콜백이 ch.Call 없이 인벤토리에서 검색기를 빼서, 응답 대기 중 맵을 옮기면 채널이 크래시할 수 있음 #369
Scan은 요청을 받은 맵 actor 컨텍스트(actx)로 SearchShopsAsync를 부르고, 응답 콜백을 owner.Call 없이 바로 실행한다. async.Promise는 ReenterAfter로 요청했던 actor에서 콜백을 돌리므로(core/async/promise.go driveFrom), 검색 응답을 기다리는 사이 캐릭터가 포탈로 다른 맵(다른 logic actor)으로 옮기면 콜백은 옛 actor에서 돈다.
Activity
refactor: bind RPC replies to the character mailbox #369
boyism80 commentedon Oct 16, 2026
[FM 리뷰어] ec802304에서 해결 확인.
RemoteShops.Scan(remote_shops.go:67)·FindPopularSearches(:32)·Manage(:123) 모두.Bind(r.owner)로 응답과 OnError가Character.Post경유 소유 actor에서 돈다(core/async/promise.gocontinueFrom·invokeOnErrors). 검색기 차감·r.scanning쓰기가 옛 맵 actor에서 일어나는 경로가 없어졌다. close.