Age | Commit message (Collapse) | Author |
|
|
|
support
|
|
|
|
|
|
don't set stopped flag until recorder object has been deleted
|
|
fix for crash on exit resulting from 8c0e024d0c33
|
|
|
|
|
|
over to get_thread_recorder() to be agnostic about which thread we're running on
|
|
|
|
|
|
|
|
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
|
|
Have the ::notifyLoadedMeshes() method doing correct locking
and stall avoidance at the same time. This method now does
lazy mutex lock acquisition (trylock()) and if it fails on
either, it gives up and comes back later. Capture the maximum
number of sequential failures and report this at the end of
the run in the log. (So far, with big mesh regions, I've
only seen 1s and 2s.) Locking/mutex requirements sorted in
other locations as well. LLMutex gets trylock() method as
well as new LLMutexTrylock scoped locking class. Clean up
some documentation, more to do.
|
|
fixed ostream precision munging in llsys
|
|
various fixes to lltrace
start() on started recording no longer resets
fixed various instances of unit forgetfullness in lltrace
recording split now has gapless timing
scene monitor now guarantees min sample time
renamed a bunch of stats
added names to debug thread view on windows
|
|
also, removed LLTrace::init and cleanup
removed derived class implementation of memory stat for LLMemTrackable
is automatic now
|
|
removed LLThreadLocalSingleton
collapsed all thread recorder classes to single type, LLTrace::ThreadRecorder
moved fasttimer stack head to llthreadlocalsingletonpointer via ThreadRecorder
|
|
pulled swap() out of ui time block
cleaned up internal lltrace dependencies, factored out common accumulator definitions
|
|
|
|
fixed copy construction behavior of Recordings to not zero out data
split measurement into event and sample, with sample representing
a continuous function
|
|
|
|
|
|
|
|
|
|
changed thread id declaration to be local to llthread.cpp and use
currentID() uniformly across platforms
|
|
fixes to merge
|
|
|
|
fixed units conversion so that trace getters return convertable units
removed circular dependencies from lltrace*
converted more stats to lltrace
|
|
renamed LLTrace::ThreadTrace to LLTrace::ThreadRecorder
renamed LLTrace::Sampler to LLTrace::Recording
|
|
cleaned up API
samplers are now value types with copy-on-write buffers under the hood
removed coupling with LLThread
|
|
created separate constructor for static allocation of sampler buffer
fixed start/stop/resume semantics of samplers and added sampler time interval tracking
|
|
slave threads now pushing data to master thread
|
|
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
|
|
Two fairly simple conflicts: dead stats sending code in the
texture fetch code (new llcorehttp library) and the cleanup
code in llappviewer was moved around in 3.4.x.
|
|
out-of-order deletion of LLTextureFetch on shutdown
|
|
LLProxy support, HttpOptions starting to work, HTTP resource waiting fixed.
Non-LLThread-based threads need to do some registration or LLMutex locks taken out in these
threads will not work as expected (SH-3154). We'll get a better solution later, this fixes
some things for now. Tracing of operations now supported. Global and per-request (via
HttpOptions) tracing levels of [0..3]. The 2 and 3 levels use libcurl's VERBOSE mode
combined with CURLOPT_DEBUGFUNCTION to stream high levels of detail into the log. *Very*
laggy but useful. Simple GET request supported (no Range: header). Really just a
degenrate case of a ranged get but supplied an API anyway. Global option to use the
LLProxy interface to setup CURL handles for either socks5 or http proxy usage. This
isn't really the most encapsulated way to do this but a better solution will have to
come later. The wantHeaders and tracing options are now supported in HttpOptions giving
per-request controls. Big refactoring of the HTTP resource waiter in lltexturefetch.
What I was doing before wasn't correct. Instead, I'm implementing the resource wait
after the Semaphore model (though not using system semaphores). So instead of having
a sequence like: SEND_HTTP_REQ -> WAIT_HTTP_RESOURCE -> SEND_HTTP_REQ, we now
do WAIT_HTTP_RESOURCE -> WAIT_HTTP_RESOURCE2 (actual wait) -> SEND_HTTP_REQ. Works
well but the prioritized filling of the corehttp library needs some performance
work later.
|
|
and LLBufferArray::copyIntoBuffers
|
|
shutdown).
|
|
assertions that were encouraging people to comment out the destruction of LLSignal.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|