diff options
| author | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2025-03-13 00:12:58 -0400 |
|---|---|---|
| committer | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2025-03-13 00:12:58 -0400 |
| commit | 418aec4dd28f4e0a373232cc86324a35ffc4345f (patch) | |
| tree | d21de1a4974c81998552d597db8917f9b88d8633 /indra/newview/llstartup.cpp | |
| parent | 0ad55a33a06c9d1878199ff1ce3e253a65832dd3 (diff) | |
Quick fix for a friend status race condition on login.
Diffstat (limited to 'indra/newview/llstartup.cpp')
| -rw-r--r-- | indra/newview/llstartup.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index eb0e9ef4bc..db75e4555b 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1306,6 +1306,15 @@ bool idle_startup() do_startup_frame(); do_startup_frame(); + + // It is entirely possible that we may get the friends list _before_ we have the callbacks registered to process that. + // This will lead to the friends list not being processed properly and online statuses not being updated appropriately at login. + // So, we need to make sure that we have the callbacks registered before we get the friends list. + // -Geenz 2025-03-12 + LL_INFOS() << " AvatarTracker" << LL_ENDL; + LLAvatarTracker::instance().registerCallbacks(gMessageSystem); + do_startup_frame(); + // Since we connected, save off the settings so the user doesn't have to // type the name/password again if we crash. gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), true); @@ -2013,8 +2022,6 @@ bool idle_startup() LLMessageSystem* msg = gMessageSystem; LL_INFOS() << " Inventory" << LL_ENDL; LLInventoryModel::registerCallbacks(msg); - LL_INFOS() << " AvatarTracker" << LL_ENDL; - LLAvatarTracker::instance().registerCallbacks(msg); LL_INFOS() << " Landmark" << LL_ENDL; LLLandmark::registerCallbacks(msg); do_startup_frame(); |
