My name is Steffan Andrews and I hail from beautiful Vancouver, Canada.
I'm a professional composer for film and TV with over 16 years of experience specializing in animated series.
I'm also a life-long coder since 1995. I have helped build numerous commercial Mac applications including Audio Design Desk and Dipper. In my spare time I build and maintain open-source packages for Swift and SwiftUI.
Currently progress labels will recursively update through the entire progress child tree under these conditions:
when a child progress is added to a parent progress
ie: when an operation is added to BasicOperationQueue or one of its subclasses
when a progress label changes (setting labelProgress.label) anywhere in the progress tree
when a child progress object deinits
BasicOperationQueue.statusHandler is called when .status changes, which is generally under these conditions (this list may not be exhaustive):
when any of these KVO observers fire:
isSuspended
operationCount
progress.fractionCompleted
progress.isFinished
Additional unit tests need to be added to test various scenarios and states of BasicOperationQueue with nested child operations to ensure that statusHandler is being called sufficiently to provide updates to changes in the aggregate progress label. Especially with concurrent child operations complete, and as they complete in a staggered fashion.