Skip to content

Commit 028d820

Browse files
[FSSDK-9093] Add return Task handle for async FetchQualifiedSegments (#344)
1 parent 7621f90 commit 028d820

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

OptimizelySDK.Tests/OptimizelyUserContextTest.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,20 +1071,18 @@ public void TrackEventEmptyAttributesWithEventTags()
10711071
public void ShouldFetchQualifiedSegmentsAsyncThenCallCallback()
10721072
{
10731073
var odpManager = new OdpManager.Builder().Build();
1074-
var cde = new CountdownEvent(1);
10751074
var callbackResult = false;
10761075
var optimizely = new Optimizely(TestData.OdpIntegrationDatafile,
10771076
EventDispatcherMock.Object, LoggerMock.Object, ErrorHandlerMock.Object,
10781077
odpManager: odpManager);
10791078
var context = new OptimizelyUserContext(optimizely, UserID, null,
10801079
ErrorHandlerMock.Object, LoggerMock.Object);
10811080

1082-
context.FetchQualifiedSegments(success =>
1081+
var task = context.FetchQualifiedSegments(success =>
10831082
{
10841083
callbackResult = success;
1085-
cde.Signal();
10861084
});
1087-
cde.Wait(5000);
1085+
task.Wait();
10881086
context.Dispose();
10891087

10901088
LoggerMock.Verify(l => l.Log(LogLevel.ERROR, Constants.ODP_NOT_ENABLED_MESSAGE),

OptimizelySDK/OptimizelyUserContext.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020-2022, Optimizely
2+
* Copyright 2020-2023, Optimizely
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -199,12 +199,12 @@ public bool FetchQualifiedSegments(List<OdpSegmentOption> segmentOptions = null)
199199
/// </summary>
200200
/// <param name="callback">Callback function to invoke when results are available</param>
201201
/// <param name="segmentOptions">Options used during segment cache handling</param>
202-
/// <returns>True if ODP segments were fetched successfully otherwise False</returns>
203-
public void FetchQualifiedSegments(Action<bool> callback,
202+
/// <returns>Handle to the Task/thread to be .Wait-ed on</returns>
203+
public Task FetchQualifiedSegments(Action<bool> callback,
204204
List<OdpSegmentOption> segmentOptions = null
205205
)
206206
{
207-
Task.Run(() =>
207+
return Task.Run(() =>
208208
{
209209
var success = FetchQualifiedSegments(segmentOptions);
210210

0 commit comments

Comments
 (0)