Skip to content

Commit

Permalink
Workaround uv scheduler main thread only constraint for callbacks cal…
Browse files Browse the repository at this point in the history
…led from non main thread and requesting a realm
  • Loading branch information
kiburtse committed Oct 20, 2023
1 parent a576686 commit e6c54bc
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
14 changes: 8 additions & 6 deletions test/object-store/realm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1070,18 +1070,18 @@ TEST_CASE("Get Realm using Async Open", "[sync][pbs][async open]") {
progress_notifier2_called = true;
});
task->start([&](ThreadSafeReference realm_ref, std::exception_ptr err) {
REQUIRE(!err);
SharedRealm realm = Realm::get_shared_realm(std::move(realm_ref));
REQUIRE(realm);
std::lock_guard<std::mutex> guard(mutex);
REQUIRE(!err);
REQUIRE(realm_ref);
task1_completed = true;
});
task->cancel();
ThreadSafeReference rref;
task2->start([&](ThreadSafeReference realm_ref, std::exception_ptr err) {
REQUIRE(!err);
SharedRealm realm = Realm::get_shared_realm(std::move(realm_ref));
REQUIRE(realm);
std::lock_guard<std::mutex> guard(mutex);
REQUIRE(!err);
REQUIRE(realm_ref);
rref = std::move(realm_ref);
task2_completed = true;
});
write = nullptr; // unblock sync
Expand All @@ -1094,6 +1094,8 @@ TEST_CASE("Get Realm using Async Open", "[sync][pbs][async open]") {
REQUIRE(!task1_completed);
REQUIRE(progress_notifier2_called);
REQUIRE(task2_completed);
SharedRealm realm = Realm::get_shared_realm(std::move(rref));
REQUIRE(realm);
}

SECTION("downloads latest state for Realms which already exist locally") {
Expand Down
2 changes: 1 addition & 1 deletion test/object-store/sync/flx_migration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,7 @@ TEST_CASE("Async open + client reset", "[sync][flx][flx migration][baas]") {
REQUIRE(before);
auto table_before = before->read_group().get_table("class_Object");
CHECK(table_before);
SharedRealm after = Realm::get_shared_realm(std::move(after_ref), util::Scheduler::make_default());
SharedRealm after = Realm::get_shared_realm(std::move(after_ref), util::Scheduler::make_dummy());
REQUIRE(after);
auto table_after = after->read_group().get_table("class_Object");
REQUIRE(table_after);
Expand Down

0 comments on commit e6c54bc

Please sign in to comment.