Skip to content

providerbase: split done signal from loaded signal

Harald Sitter requested to merge work/sitter/done into master

this was a bit awkward before. while the signal was called finished it didn't actually finish... unless you passed and empty list. this not only made it incredibly inobvious when a finish occured it also meant one could accidentally finish a stream.

we now have two distinct signals: entriesLoaded and loadingDone. entriesLoaded can be called any number of times. loadingDone can be called once and concludes the result stream if all providers are "done".

the legacy bubble wrap keeps the old behavior for legacy code. everything else (everything internally) is using the new signal line up.

the end result of this is that we should be getting more reliable state management since we now need to be explicit about our intent to finish, preventing accdential finish and implied finish. it also means discover can now rely on streams getting finished when they are done and everytime it doesn't happen it's a legit bug.

Merge request reports

Loading