summaryrefslogtreecommitdiff
path: root/indra/llcommon/llmainthreadtask.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2024-10-22 11:34:46 -0400
committerNat Goodspeed <nat@lindenlab.com>2024-10-22 11:34:46 -0400
commitb0645835595f3517223329ba62f46277d3e3a9dd (patch)
treea2b523c3beff518dcbec55663185d6ff70ae5097 /indra/llcommon/llmainthreadtask.cpp
parent8e737a5d45157426cb84927170a78baea2106813 (diff)
Make llcoro::scheduler log coros that run too long between yields.
Introduce LLCoros::CoroData::mHistogram, a map of cutoff times (bucket breakpoints) with counts of occurrences. The idea is that mHistogram counts how many times the real time taken by a particular coroutine resumption falls into one of those buckets. Initialize the map with guessed buckets; these are set in llcoros.cpp so they can be changed without requiring extensive rebuilds. scheduler::pick_next() now records the timestamp and fiber context just before the fiber manager resumes the next coroutine. If the next pick_next() call reveals that the previous resumption took longer than the minimum bucket breakpoint, it increments the appropriate bucket counter and logs the instance. LLCoros::toplevel() reports nonzero mHistogram entries on coroutine termination.
Diffstat (limited to 'indra/llcommon/llmainthreadtask.cpp')
0 files changed, 0 insertions, 0 deletions