Skip to content
Snippets Groups Projects
  1. Apr 16, 2022
  2. Apr 06, 2022
  3. Oct 11, 2021
  4. Oct 08, 2021
  5. Sep 01, 2021
    • Callum Linden's avatar
      SL-15867 User not logged in - very much the MVS (minimum viable solution) but... · f949415a
      Callum Linden authored
      SL-15867 User not logged in - very much the MVS (minimum viable solution) but by storing the OpenID cookie when it arrives then injecting it forcefully into each new media instance, it appears that the 'not logged in' problem is solved - at least in my testing, 20+ times logging in without a cache and profiles, dashboard etc. were all logged in - QA will confirm. The full solution involves providing a separate cache for each media instance and tightening up the CEF cookie calling code - that is a large project and this is sufficient for now
      f949415a
    • Callum Linden's avatar
      SL-15867 User not logged in - very much the MVS (minimum viable solution) but... · b12dd38c
      Callum Linden authored
      SL-15867 User not logged in - very much the MVS (minimum viable solution) but by storing the OpenID cookie when it arrives then injecting it forcefully into each new media instance, it appears that the 'not logged in' problem is solved - at least in my testing, 20+ times logging in without a cache and profiles, dashboard etc. were all logged in - QA will confirm. The full solution involves providing a separate cache for each media instance and tightening up the CEF cookie calling code - that is a large project and this is sufficient for now
      b12dd38c
  6. Aug 20, 2021
  7. Jul 12, 2021
  8. May 24, 2021
  9. May 17, 2021
    • Nat Goodspeed's avatar
      SL-15200: Add LLApp::sleep(duration) methods. · d313d702
      Nat Goodspeed authored
      Two sleep() methods: one accepting F32Milliseconds, or in general any LLUnits
      time class; the other accepting any std::chrono::duration.
      
      The significant thing about each of these sleep() methods, as opposed to any
      freestanding sleep() function, is that it only sleeps until the app starts
      shutdown. Moreover, it returns true if it slept for the whole specified
      duration, false if it woke for app shutdown.
      
      This is accomplished by making LLApp::sStatus be an LLScalarCond<EAppStatus>
      instead of a plain EAppStatus enum, and by making setStatus() call set_all()
      each time the value changes. Then each new sleep() method can call
      wait_for_unequal(duration, APP_STATUS_RUNNING).
      
      Introducing llcond.h into llapp.h triggered an #include circularity because
      llthread.h #included llapp.h even though it didn't reference anything from it.
      Removed. This, in turn, necessitated adding #include "llapp.h" to several .cpp
      files that reference LLApp but had been depending on other header files to
      drag in llapp.h.
      d313d702
  10. Feb 10, 2021
  11. Aug 10, 2020
  12. Jul 17, 2020
  13. Jul 06, 2020
  14. Apr 28, 2020
  15. Mar 25, 2020
    • Anchor's avatar
      [DRTVWR-476] - fix linking · b5bb0794
      Anchor authored
      b5bb0794
    • Nat Goodspeed's avatar
      DRTVWR-494: Use std::thread::id for LLThread::currentID(). · 5e7df752
      Nat Goodspeed authored
      LLThread::currentID() used to return a U32, a distinct unsigned value
      incremented by explicitly constructing LLThread or by calling LLThread::
      registerThreadID() early in a thread launched by other means. The latter
      imposed an unobvious requirement on new code based on std::thread. Using
      std::thread::id instead delegates to the compiler/library the problem of
      distinguishing threads launched by any means.
      
      Change lots of explicit U32 declarations. Introduce LLThread::id_t typedef to
      avoid having to run around fixing uses again if we later revisit this decision.
      
      LLMutex, which stores an LLThread::id_t, wants a distinguished value meaning
      NO_THREAD, and had an enum with that name. But as std::thread::id promises
      that the default-constructed value is distinct from every valid value,
      NO_THREAD becomes unnecessary and goes away.
      
      Because LLMutex now stores LLThread::id_t instead of U32, make llmutex.h
      #include "llthread.h" instead of the other way around. This makes LLMutex an
      incomplete type within llthread.h, so move LLThread::lockData() and
      unlockData() to the .cpp file. Similarly, remove llrefcount.h's #include
      "llmutex.h" to break circularity; instead forward-declare LLMutex.
      
      It turns out that a number of source files assumed that #include "llthread.h"
      would get the definition for LLMutex. Sprinkle #include "llmutex.h" as needed.
      
      In the SAFE_SSL code in llcorehttp/httpcommon.cpp, there's an ssl_thread_id()
      callback that returns an unsigned long to the SSL library. When LLThread::
      currentID() was U32, we could simply return that. But std::thread::id is very
      deliberately opaque, and can't be reinterpret_cast to unsigned long.
      Fortunately it can be hashed because std::hash is specialized with that type.
      5e7df752
  16. Oct 15, 2019
  17. Sep 13, 2019
  18. Jul 01, 2019
  19. Jun 11, 2019
  20. Jun 10, 2019
  21. Apr 24, 2019
  22. Jan 14, 2019
  23. Sep 07, 2018
  24. Sep 05, 2018
  25. Apr 17, 2018
  26. Feb 18, 2018
  27. Feb 12, 2018
  28. Jan 26, 2018
  29. Jan 17, 2018
  30. Dec 15, 2017
  31. Dec 14, 2017
  32. Sep 27, 2017
  33. Jun 06, 2017
Loading