Skip to content

Commit

Permalink
Test
Browse files Browse the repository at this point in the history
  • Loading branch information
gthea committed Nov 6, 2024
1 parent 642949d commit f681d1b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
1 change: 1 addition & 0 deletions .github/workflows/test_ios_ut_4.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- SDKS-8989
pull_request:
branches:
- master
Expand Down
33 changes: 18 additions & 15 deletions Split/Network/Streaming/SyncSegmentsUpdateWorker.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class SegmentsUpdateWorker: UpdateWorker<MembershipsUpdateNotification> {
private let payloadDecoder: SegmentsPayloadDecoder
private let telemetryProducer: TelemetryRuntimeProducer?
private let resource: TelemetryUpdatesFromSseType
private let syncQueue: DispatchQueue
// Visible for testing
var decomProvider: CompressionProvider = DefaultDecompressionProvider()

Expand All @@ -29,6 +30,7 @@ class SegmentsUpdateWorker: UpdateWorker<MembershipsUpdateNotification> {
self.payloadDecoder = payloadDecoder
self.telemetryProducer = telemetryProducer
self.resource = resource
self.syncQueue = DispatchQueue(label: "split-segments-worker")
super.init(queueName: "split-segments-fetcher")
}

Expand Down Expand Up @@ -119,23 +121,24 @@ class SegmentsUpdateWorker: UpdateWorker<MembershipsUpdateNotification> {

let jsonKeyList = try payloadDecoder.decodeAsString(payload: encodedkeyList, compressionUtil: compressionUtil)
let keyList = try payloadDecoder.parseKeyList(jsonString: jsonKeyList)

doForAllUserKeys { userKey in
let keyHash = payloadDecoder.hashKey(userKey)
if keyList.added.contains(keyHash) {
let oldSegments = mySegmentsStorage.getAll(forKey: userKey)
let newSegments = oldSegments.union(segments)
if oldSegments.count < newSegments.count {
mySegmentsStorage.set(SegmentChange(segments: newSegments.asArray()),
forKey: userKey)
synchronizer.notifyUpdate(forKey: userKey)
telemetryProducer?.recordUpdatesFromSse(type: .mySegments)
syncQueue.sync {
doForAllUserKeys { userKey in
let keyHash = payloadDecoder.hashKey(userKey)
if keyList.added.contains(keyHash) {
let oldSegments = mySegmentsStorage.getAll(forKey: userKey)
let newSegments = oldSegments.union(segments)
if oldSegments.count < newSegments.count {
mySegmentsStorage.set(SegmentChange(segments: newSegments.asArray()),
forKey: userKey)
synchronizer.notifyUpdate(forKey: userKey)
telemetryProducer?.recordUpdatesFromSse(type: .mySegments)
}
return
}
return
}

if keyList.removed.contains(keyHash) {
remove(segments: segments, forKey: userKey)
if keyList.removed.contains(keyHash) {
remove(segments: segments, forKey: userKey)
}
}
}
}
Expand Down

0 comments on commit f681d1b

Please sign in to comment.