summaryrefslogtreecommitdiff
path: root/indra/llcommon/llrefcount.h
AgeCommit message (Collapse)Author
2020-03-25DRTVWR-494: Use std::thread::id for LLThread::currentID().Nat Goodspeed
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.
2019-01-15SL-10291 Replace apr_atomic with standard C++11 functionalityandreykproductengine
2019-01-17SL-10291 cleanup-mutexandreykproductengine
2016-04-04merge with 4.0.3-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-06-29MAINT-4952: Fix misplaced comments on intrusive_ptr_etc() overloads.Nat Goodspeed
2014-10-17Update to build on Xcode 6.0: fix Boost intrusive_ptr scoping issue (part 2 ↵callum_linden
- tidy up)
2014-10-17Update to build on Xcode 6.0: fix Boost intrusive_ptr scoping issuecallum_linden
2013-10-08merge from viewer-releaseRichard Linden
2013-07-30BUILDFIX: some gcc build fixesRichard Linden
2013-07-22BUIDLFIX: moved LLThreadSafeRefCount to proper fileRichard Linden
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2012-03-29CHUI-51 WIP notifications routig code cleanupRichard Linden
phase 2, removal of extraneous signaling in favor of llnotificationchannels made notificationchannels work better with overrides and lifetime managed by creator
2011-01-06BUILDFIX: fixing linux build breakageNyx (Neal Orman)
cleaning up a bit of syntax that gcc is complaining about. reviewed by bao
2011-01-04trival: fix compiling errors for Linux.Xiaohong Bao
2011-01-04a debug tool to detect LLPointer issues for SH-694: check if there are any ↵Xiaohong Bao
other LLPointer issues in the mesh model uploading flow and fix them if exist. This debug tool is off by default. To turn it on, set LL_REF_COUNT_DEBUG to be 1 in the header file "llcommon/llrefcount.h".
2010-10-13correct licenses (fix problem with license change merge)Oz Linden
2010-01-22LLPointer cleanup and fix for EXT-4413richard
reviewed by Rick
2009-08-27Merged latest login-api with latest viewer-2.0.0-3 up through plugin-api-05 ↵brad kittenbrink
merge (r131929). Some minor post-merge cleanups still required.
2009-08-24merge -r 130399-131510 skinning-21 -> viewer-2.0.0-3Richard Nelson
DEV-11254 DEV-11254 DEV-2003: DEV-21567 DEV-37301 EXT-104 EXT-138 EXT-217 EXT-256 EXT-259 EXT-259 EXT-328 EXT-348 EXT-386 EXT-399 EXT-403 EXT-460 EXT-492 EXT-492 EXT-531 EXT-537 EXT-684 improved text editor (handles multiple fonts simultaneously as well as inline widgets)
2009-06-21merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3Steven Bennetts
ignore-dead-branch
2009-05-22DEV-27646 dll linkage for login module.Brad Kittenbrink
Ok, finally got this to a point where it doesn't break the build and I can check in. llcommon can be built as a shared library (disabled but can be enabled with cmake cache var LLCOMMON_LINK_SHARED. reviewed by Mani on tuesday (I still need to get his suggested changes re-reviewed)
2009-05-08merge trunk@116587 skinning-7@119389 -> viewer-2.0.0-skinning-7Steven Bennetts