Bleh, had some old initialization code in place that meant I was using
32 connections. (Always verify with 'netstat'...) Logic is now to
use 1/4 of MeshMaxConncurrentRequests to head in the direction of 8
at a time. Full count is used to implement a high-water level keeping
llcorehttp in work.
Conversion was mostly trivial. Did some refactoring in the conversion
of Responders to Handlers which eliminated 5X code replication. More
will be done especially as this is extended to deal with the various
possible combinations of 200/206/416 status for ranged gets. There are
a lot of thread races in the existing code, that is going to need some
real attention. And the scheduling/liveness logic in the thread
management bounces around from thread to thread wasting a lot of time
and using expensive synchronization. Much can be done here. But the
result is that the 8 connections in the Mesh corehttp class now perform
as did the 32 connections of the original. And that 32 actually looks
like it could bleed to over 64. So, progress...
Initial work completed on linux, moving over to windows to do debug
and refinement. This includes 5/6 handlers based on existing responders
and use of llcorehttp for the mesh header fetch.
The http_texture_load example program has some cpu usage gathering
tools that should be generally useful and specifically for the
deadman switch. Port these into llcommon into new all-static
class LLProcInfo. Add unit test, etc.
One of the metrics calls was running in an LLCurl-owned thread
doing responder invocation. Deleted that invocation and will
do with the other safe ones. Added a boost signal on the
TeleportStarted message which is now used to restart the metrics
timer. I think I'd like to move the metric blob into a free-
standing entity later...
Timer interface violated my design rules and I paid for it
with clumsiness and silent errors. Cleaned it up mainly
removing the evil default values. Found better integration
points in the mesh downloader and it's producing fairly
consistent numbers on the MeshTest2 test region (about
5500 downloads, ~90 seconds, +/- 10 seconds). Will review
with davep and do an early timer stop on teleport which
invalidates a timing sequence.
doesn't allow negative offsetting for unit tests. Had to keep
things positive. Could do windows-specific test cases but I'm
hoping to dump lltimer from the implementation later.
the deadman's timer. Found some bugs, dig some cleanup and
documented a few things. Definitely want to get rid of the
U64/F64 interfaces at sometime but this is a good start.
1) when preference is "Pop up" - added toast according to Kurt's comment from 22/Dec/12;
2) fixed line item flashing and "Chat" button flashing in other cases according to original matrix.