Age | Commit message (Collapse) | Author |
|
fixed various issues related to unit tests and LLThreadLocalPtr initialization and teardown
|
|
moved LLThread::lockData and unlockData back to header
|
|
moved LLThreadLocalPtr to llapr
fixed various startup race conditions for LLThreadLocalPtr
|
|
added LLThreadLocalPtr
broke llmutex out into llmutex.h
got primary sampling buffer under thread local storage
|
|
renamed some variables/methods
|
|
added multi-threaded sampling to LLTrace
first pass at data aggregation
|
|
added buffer merging and copying
|
|
created buffer type for storing trace data
added merging logic for different trace types
|
|
further development of lltrace (accumulator and storage classes)
|
|
lltrace cleanup
|
|
|
|
renamed some variables in lltrace
|
|
build fix
|
|
first pass at LLTrace framework
|
|
|
|
open root timer by default
|
|
|
|
cleaner implementation of llfasttimers...don't bother to share similarly named timers
just create multiple timers with same name...doesn't break anything
|
|
|
|
|
|
allow duplicate named fast timers again, refactored timer code
|
|
|
|
further cleanup of LLStat
removed llfloaterlagmeter
|
|
|
|
|
|
|
|
|
|
|
|
I recently tried to wade through llhandle.h and got somewhat perplexed. Armed
with an explanation from Richard, I've added notes to the file to try to make
it a bit less mysterious.
|
|
Leaving llhandle.h in llui restricts the set of viewer project directories
which could potentially use it, and there's nothing whatsoever UI-specific
about it.
|
|
|
|
cleaned up LLStat and removed unnecessary includes
|
|
removed unnecessary cache miss from fast timers
renamed llfasttimer_class back to llfasttimer
|
|
|
|
rather than fixing them; changing llcommon to be statically linked avoids the symbol issues with llcommon.dll
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We now specialize std::less<const std::type_info*> to use
std::type_info::before(), and on Windows and Mac that Just Works. It even
works on Linux when using gcc 4.4+: more recent implementations of gcc's
std::type_info::before() apparently do name()-string comparisons internally.
It doesn't work so well on Linux with gcc 4.1, though, and that's the compiler
we still use on our Linux build-farm machines. But rather than give up,
perform explicit name()-string comparison in that case.
|
|
Instead of forbidding std::map<const std::type_info*, ...> outright (which
includes LLRegistry<const std::type_info*, ...> and LLRegistrySingleton<const
std::type_info*, ...>), try to make it work by specializing std::less<const
std::type_info*> to use std::type_info::before().
Make LLRegistryDefaultComparator<T> use std::less<T> so it can capitalize on
that specialization.
|
|
|
|
The changeset above touched every consumer of the two LLRegistrySingletons
originally defined with std::type_info* as keys. Those two
LLRegistrySingletons were changed to use const char* as keys, then all
consumers were changed to pass std::type_info::name() instead of the plain
std::type_info* pointer -- to deal with the observed fact that on Linux, a
given type might produce different std::type_info* pointers in different load
modules. Since then, Richard turned up the fascinating fact that at least some
implementations of gcc's std::type_info::before() method already accommodate
this peculiarity. It seems worth backing out the (dismayingly pervasive)
change to see if properly using std::type_info::before() as the map comparator
will work just as well, with conceptually simpler source code.
This backout is transitional: we don't expect things to build/run properly
until we've cherry-picked certain other pertinent changes.
|
|
clean up of llstats stuff
|
|
boost::unordered_map<const char*, ...> does NOT, by default, "do the right
thing." Give it hash and equality functors that do.
|
|
Try to diagnose the cause of the misbehavior with a BOOST_STATIC_ASSERT.
|
|
|
|
Although LLRegistry and LLRegistrySingleton have always defined a COMPARATOR
template parameter, it wasn't used for the underlying map. Therefore every
type, including any pointer type, was being compared using std::less. This
happens to work most of the time -- but is tripping us up now.
Pass COMPARATOR to underlying std::map. Fix a couple minor bugs in
LLRegistryDefaultComparator (never before used!). Specialize for const char*.
Remove CompareTypeID and LLCompareTypeID because we now actively forbid using
LLRegistry<std::type_info*, ...>; remove only known reference
(LLWidgetNameRegistry definition).
|