After going back to this from the next patch I think I spotted a behavior difference: xlog_state_do_iclog_callbacks only returns true, and xlog_state_do_callback only increments loopdidcallbacks if ic_callbacks was non-emty. But we already dropped the block just to check that it is empty, so I think we need to keep the old behavior.