dart_queue icon indicating copy to clipboard operation
dart_queue copied to clipboard

Add an option to cancel the queue without throwing errors

Open mark8044 opened this issue 8 months ago • 3 comments

In my use case, Id like to cancel a Queue and get rid of all the items within the queue, but without throwing the QueueCancelledException. A so called 'silent' cancel.

Here I've added an option supressErrorsOnCancel which defaults to false so it doesn't do any breaking changes But if its true then instead of doing a .completeError it will just do a .complete

This is the part I'm unsure if it's going to function as intended. In my own use case this seems to be working just fine. But please review if you think it should be merged in.

Essentially, I'm expecting that it will just close out the queue item with a .complete without actually executing the queue item. If its not working like that then please feel free to reject this PR

mark8044 avatar Apr 03 '25 00:04 mark8044

So I have no problem with a silent cancel, I guess my only foreseeable problems would be around maintaining null safety when its completed, and perhaps memory leaks. I'll need to dig into the code to ensure both of those wont be an issue - but realistically if your PR has all the tests passing, the memory leak and null safety issues are probably already existing in the code and haven't been thought about anyway.

rknell avatar Apr 03 '25 05:04 rknell

So I have no problem with a silent cancel, I guess my only foreseeable problems would be around maintaining null safety when its completed, and perhaps memory leaks. I'll need to dig into the code to ensure both of those wont be an issue - but realistically if your PR has all the tests passing, the memory leak and null safety issues are probably already existing in the code and haven't been thought about anyway.

Sounds great-- mainly I'm concerned that by putting in .complete, it doesn't go ahead and execute the queue item. Hopefully you don't see that happening on your end

mark8044 avatar Apr 03 '25 16:04 mark8044

@rknell Just wanted to bump this

mark8044 avatar Apr 29 '25 20:04 mark8044