fix for android - create notifier after opening realm
This commit is contained in:
parent
0ce3cdf81d
commit
78f74211b1
|
@ -65,18 +65,8 @@ std::shared_ptr<Realm> RealmCoordinator::get_realm(Realm::Config config)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(m_realm_mutex);
|
std::lock_guard<std::mutex> lock(m_realm_mutex);
|
||||||
|
|
||||||
auto realm = std::make_shared<Realm>(std::move(config));
|
|
||||||
|
|
||||||
if ((!m_config.read_only && !m_notifier) || (m_config.read_only && m_weak_realm_notifiers.empty())) {
|
if ((!m_config.read_only && !m_notifier) || (m_config.read_only && m_weak_realm_notifiers.empty())) {
|
||||||
m_config = config;
|
m_config = config;
|
||||||
if (!config.read_only && !m_notifier && config.automatic_change_notifications) {
|
|
||||||
try {
|
|
||||||
m_notifier = std::make_unique<ExternalCommitHelper>(*this);
|
|
||||||
}
|
|
||||||
catch (std::system_error const& ex) {
|
|
||||||
throw RealmFileException(RealmFileException::Kind::AccessError, config.path, ex.code().message());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (m_config.read_only != config.read_only) {
|
if (m_config.read_only != config.read_only) {
|
||||||
|
@ -114,7 +104,18 @@ std::shared_ptr<Realm> RealmCoordinator::get_realm(Realm::Config config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto realm = std::make_shared<Realm>(std::move(config));
|
||||||
realm->init(shared_from_this());
|
realm->init(shared_from_this());
|
||||||
|
|
||||||
|
if (!config.read_only && !m_notifier && config.automatic_change_notifications) {
|
||||||
|
try {
|
||||||
|
m_notifier = std::make_unique<ExternalCommitHelper>(*this);
|
||||||
|
}
|
||||||
|
catch (std::system_error const& ex) {
|
||||||
|
throw RealmFileException(RealmFileException::Kind::AccessError, config.path, ex.code().message());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_weak_realm_notifiers.emplace_back(realm, m_config.cache);
|
m_weak_realm_notifiers.emplace_back(realm, m_config.cache);
|
||||||
return realm;
|
return realm;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue