Skip to content
Snippets Groups Projects
  1. Jan 05, 2021
  2. Dec 21, 2020
  3. Dec 17, 2020
  4. Nov 11, 2020
  5. Nov 07, 2020
  6. Nov 06, 2020
  7. Oct 31, 2020
  8. Oct 29, 2020
  9. Oct 10, 2020
  10. Oct 08, 2020
  11. Sep 10, 2020
  12. Sep 08, 2020
  13. Aug 21, 2020
  14. Aug 09, 2020
  15. Aug 08, 2020
  16. Jul 20, 2020
  17. Jul 03, 2020
  18. Jun 30, 2020
  19. Apr 13, 2020
  20. Mar 25, 2020
    • Anchor's avatar
      32f1dfa5
    • 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
  21. Mar 23, 2020
  22. Mar 19, 2020
  23. Jun 03, 2019
  24. Jan 15, 2019
  25. Jan 16, 2019
  26. Jan 14, 2019
  27. Dec 15, 2018
    • Nat Goodspeed's avatar
      SL-10153: auto name{expression} declares an initializer_list · 4a136572
      Nat Goodspeed authored
      instead of a variable of type decltype(expression).
      
      Using SHGetKnownFolderPath(FOLDERID_Fonts) in LLFontGL::getFontPathSystem()
      requires new Windows #include files.
      
      A variable with a constructor can't be declared within the braces of a switch
      statement, even outside any of its case clauses.
      4a136572
  28. Dec 14, 2018
    • Nat Goodspeed's avatar
      SL-10153: Review and rationalize fetching paths from environment. · c4096f67
      Nat Goodspeed authored
      Use LLStringUtil::getenv() or getoptenv() whenever we fetch a string that will
      be used as a pathname.
      
      Use LLFile::tmpdir() instead of getenv("TEMP").
      
      As an added extra-special bonus, finally clean up $TMP/llcontrol-test-zzzzzz
      directories that have been accumulating every time we run a local build!
      c4096f67
  29. Dec 11, 2018
  30. Dec 10, 2018
  31. Dec 08, 2018
  32. Dec 06, 2018
  33. Dec 05, 2018
Loading