Skip to content
Snippets Groups Projects
  1. Dec 30, 2020
  2. Nov 10, 2020
  3. Nov 09, 2020
  4. Nov 08, 2020
  5. Nov 07, 2020
  6. Oct 31, 2020
  7. Oct 29, 2020
  8. Sep 18, 2020
  9. Aug 10, 2020
  10. Aug 08, 2020
  11. Jul 28, 2020
  12. Jul 22, 2020
  13. Jul 21, 2020
  14. Jul 17, 2020
  15. Jun 30, 2020
  16. Apr 28, 2020
  17. 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
  18. Oct 15, 2019
  19. Sep 13, 2019
  20. Jul 01, 2019
  21. Jun 11, 2019
  22. Jun 10, 2019
  23. Apr 24, 2019
  24. Jan 14, 2019
  25. Sep 07, 2018
  26. Sep 05, 2018
  27. Apr 17, 2018
  28. Feb 18, 2018
  29. Feb 12, 2018
  30. Jan 26, 2018
  31. Jan 17, 2018
  32. Dec 15, 2017
  33. Dec 14, 2017
  34. Sep 27, 2017
Loading