message: Strongly retain self in AsyncOpenTask while waiting for the completion callback
diff: @@ -33,9 +33,8 @@ AsyncOpenTask::AsyncOpenTask(std::shared_ptr<_impl::RealmCoordinator> coordinato
  void AsyncOpenTask::start(std::function<void(ThreadSafeReference<Realm>, std::exception_ptr)> callback)
  {
  - std::weak_ptr<AsyncOpenTask> weak_self(shared_from_this());
  - m_session->wait_for_download_completion([callback, weak_self](std::error_code ec) {
  - if (auto self = weak_self.lock()) {
  + std::shared_ptr<AsyncOpenTask> self(shared_from_this());
  + m_session->wait_for_download_completion([callback, self](std::error_code ec) {
  if (self->m_canceled)
  return; // Swallow all events if the task as been canceled.
  @@ -57,7 +56,6 @@ void AsyncOpenTask::start(std::function<void(ThreadSafeReference<Realm>, std::ex
  return callback({}, std::current_exception());
  }
  callback(std::move(realm), nullptr);
  - }
  });
  }
  