From: Ian Jackson Date: Mon, 5 Apr 2021 15:42:04 +0000 (+0100) Subject: cmdlistener: Break out some_synch_core X-Git-Tag: otter-0.5.0~172 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c8325e93f92b05b7267a7096f82b9e3e4077760a;p=otter.git cmdlistener: Break out some_synch_core Signed-off-by: Ian Jackson --- diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index ed4c94dd..b5d3142b 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -324,6 +324,16 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( no_updates(ig, resp) } + #[throws(MgmtError)] + fn some_synch_core(ig: &mut InstanceGuard<'_>) -> (Generation, MGR) { + let mut buf = PrepareUpdatesBuffer::new(ig, None); + let gen = buf.gen(); + drop(buf); // does updatenocc + ig.save_game_now()?; + // we handled the update ourselves, return no update info, just MGR + (gen, MGR::Synch(gen)) + } + #[throws(MgmtError)] fn update_links<'igr, 'ig: 'igr, 'cs, F: FnOnce(&mut Arc) -> Result> @@ -438,14 +448,10 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( }, MGI::Synch => { - let (mut ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Play])?; - let mut buf = PrepareUpdatesBuffer::new(&mut ig, None); - let gen = buf.gen(); - drop(buf); // does updatenocc - // we handled the update ourselves, return no update info - ig.save_game_now()?; - no_updates(ig, MGR::Synch(gen)) - }, + let (ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Play])?; + let (_gen, mgr) = some_synch_core(ig)?; + no_updates(ig, mgr) + } MGI::PieceIdLookupFwd { player, piece } => { pieceid_lookup(