phoenix-firestorm/indra/llcommon/tests
Nat Goodspeed fc424a0db9 SL-18809: Add WorkSchedule; remove timestamps from WorkQueue.
For work queues that don't need timestamped tasks, eliminate the overhead of a
priority queue ordered by timestamp. Timestamped task support moves to
WorkSchedule. WorkQueue is a simpler queue that just waits for work.

Both WorkQueue and WorkSchedule can be accessed via new WorkQueueBase API. Of
course the WorkQueueBase API doesn't deal with timestamps, but a WorkSchedule
can be accessed directly to post timestamped tasks and then handled normally
(e.g. by ThreadPool) to run them.

Most ThreadPool functionality migrates to new ThreadPoolBase class, with
template subclass ThreadPoolUsing<WorkQueue> or ThreadPoolUsing<WorkSchedule>
depending on need. ThreadPool is now an alias for ThreadPoolUsing<WorkQueue>.
Importantly, ThreadPoolUsing::getQueue() delivers a reference to the specific
queue subclass type, so you can post timestamped tasks on a queue retrieved
from ThreadPoolUsing<WorkSchedule>::getQueue().

Since ThreadPool is no longer a simple class but an alias for a particular
template specialization, introduce threadpool_fwd.h to forward-declare it.

Recast workqueue_test.cpp to exercise WorkSchedule, since some of the tests
are time-based. A future todo would be to exercise each applicable test with
both WorkQueue and WorkSchedule.
2022-12-09 13:21:45 -05:00
..
StringVec.h
bitpack_test.cpp
classic_callback_test.cpp
commonmisc_test.cpp
listener.h
llallocator_heap_profile_test.cpp
llallocator_test.cpp
llbase64_test.cpp
llcond_test.cpp
lldate_test.cpp
lldeadmantimer_test.cpp
lldependencies_test.cpp
llerror_test.cpp
lleventcoro_test.cpp
lleventdispatcher_test.cpp
lleventfilter_test.cpp
llexception_test.cpp
llframetimer_test.cpp
llheteromap_test.cpp
llinstancetracker_test.cpp
lllazy_test.cpp
llleap_test.cpp
llmainthreadtask_test.cpp
llmemtype_test.cpp
llpounceable_test.cpp
llprocess_test.cpp
llprocessor_test.cpp
llprocinfo_test.cpp
llrand_test.cpp
llsdserialize_test.cpp
llsingleton_test.cpp
llstreamqueue_test.cpp
llstring_test.cpp
lltrace_test.cpp
lltreeiterators_test.cpp
llunits_test.cpp
lluri_test.cpp
stringize_test.cpp
threadsafeschedule_test.cpp
tuple_test.cpp
workqueue_test.cpp
wrapllerrs.h