@@ -936,8 +936,11 @@ handle_cast({remove, CRef, MsgIds}, State) ->
936936 ignore -> {Removed , State2 }
937937 end
938938 end , {[], State }, MsgIds ),
939- noreply (maybe_compact (client_confirm (CRef , sets :from_list (RemovedMsgIds , [{version , 2 }]),
940- ignored , State1 )));
939+ case RemovedMsgIds of
940+ [] -> noreply (State1 );
941+ _ -> noreply (maybe_compact (client_confirm (CRef , sets :from_list (RemovedMsgIds , [{version , 2 }]),
942+ ignored , State1 )))
943+ end ;
941944
942945handle_cast ({combine_files , Source , Destination , Reclaimed },
943946 State = # msstate { sum_file_size = SumFileSize ,
@@ -1372,7 +1375,7 @@ client_confirm(CRef, MsgIds, ActionTaken, State) ->
13721375 case maps :find (CRef , CTM ) of
13731376 {ok , Gs } -> MsgOnDiskFun (sets :intersection (Gs , MsgIds ),
13741377 ActionTaken ),
1375- MsgIds1 = sets : subtract (Gs , MsgIds ),
1378+ MsgIds1 = sets_subtract (Gs , MsgIds ),
13761379 case sets :is_empty (MsgIds1 ) of
13771380 true -> maps :remove (CRef , CTM );
13781381 false -> maps :put (CRef , MsgIds1 , CTM )
@@ -1381,6 +1384,13 @@ client_confirm(CRef, MsgIds, ActionTaken, State) ->
13811384 end
13821385 end , CRef , State ).
13831386
1387+ % % Function defined in both rabbit_msg_store and rabbit_variable_queue.
1388+ sets_subtract (Set1 , Set2 ) ->
1389+ case sets :size (Set2 ) of
1390+ 1 -> sets :del_element (hd (sets :to_list (Set2 )), Set1 );
1391+ _ -> sets :subtract (Set1 , Set2 )
1392+ end .
1393+
13841394blind_confirm (CRef , MsgIds , ActionTaken , State ) ->
13851395 update_pending_confirms (
13861396 fun (MsgOnDiskFun , CTM ) -> MsgOnDiskFun (MsgIds , ActionTaken ), CTM end ,
0 commit comments