make lobby actor broom asynchronous
This commit is contained in:
parent
5340952d32
commit
8a724366f5
|
@ -48,14 +48,16 @@ private[lobby] final class Lobby(
|
|||
}
|
||||
}
|
||||
|
||||
case Broom ⇒ blocking {
|
||||
socket ? GetUids mapTo manifest[Iterable[String]] addEffect { uids ⇒
|
||||
(HookRepo openNotInUids uids.toSet) foreach remove
|
||||
HookRepo.cleanupOld foreach remove
|
||||
}
|
||||
case Broom ⇒ socket ? GetUids mapTo manifest[Iterable[String]] foreach { uids ⇒
|
||||
val hooks = {
|
||||
(HookRepo openNotInUids uids.toSet) ::: HookRepo.cleanupOld
|
||||
}.toSet
|
||||
if (hooks.nonEmpty) self ! RemoveHooks(hooks)
|
||||
}
|
||||
|
||||
case Resync ⇒ socket ! HookIds(HookRepo.list map (_.id))
|
||||
case RemoveHooks(hooks) ⇒ hooks foreach remove
|
||||
|
||||
case Resync ⇒ socket ! HookIds(HookRepo.list map (_.id))
|
||||
}
|
||||
|
||||
private def remove(hook: Hook) = {
|
||||
|
|
|
@ -22,6 +22,7 @@ case class Connected(enumerator: JsEnumerator, member: Member)
|
|||
case class WithHooks(op: Iterable[String] ⇒ Unit)
|
||||
case class AddHook(hook: Hook, user: Option[User])
|
||||
case class RemoveHook(hookId: String)
|
||||
case class RemoveHooks(hooks: Set[Hook])
|
||||
case class CancelHook(uid: String)
|
||||
case class BiteHook(hookId: String, uid: String, userId: Option[String])
|
||||
case class JoinHook(uid: String, hook: Hook, game: Game)
|
||||
|
|
Loading…
Reference in a new issue