Skip to content

Commit 38f481e

Browse files
authored
Fix: handlers not retained unless callers retain the MuxUpload (#25)
* fix: Retain MuxUploader & Handlers via the UploadManager * Also clear the delegate
1 parent 0fa9b4b commit 38f481e

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

Sources/MuxUploadSDK/PublicAPI/MuxUpload.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public final class MuxUpload : Hashable, Equatable {
187187
let fileWorker = ChunkedFileUploader(uploadInfo: uploadInfo, startingAtByte: completedUnitCount)
188188
fileWorker.addDelegate(
189189
withToken: id,
190-
InternalUploaderDelegate { [weak self] state in self?.handleStateUpdate(state) }
190+
InternalUploaderDelegate { [self] state in handleStateUpdate(state) }
191191
)
192192
fileWorker.start()
193193
uploadManager.registerUploader(fileWorker, withId: id)
@@ -223,6 +223,7 @@ public final class MuxUpload : Hashable, Equatable {
223223
let finalStatus = Status(progress: result.finalProgress, updatedTime: result.finishTime, startTime: result.startTime, isPaused: false)
224224
notifySuccess(Result<Success, UploadError>.success(Success(finalState: finalStatus)))
225225
}
226+
fileWorker?.removeDelegate(withToken: id)
226227
fileWorker = nil
227228
}
228229
case .failure(let error): do {
@@ -241,6 +242,7 @@ public final class MuxUpload : Hashable, Equatable {
241242
notifyFailure(Result.failure(parsedError))
242243
}
243244
}
245+
fileWorker?.removeDelegate(withToken: id)
244246
fileWorker = nil
245247
}
246248
case .uploading(let update): do {

0 commit comments

Comments
 (0)