Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
intrusive_ptr<> for refrence counting.
|
|
Specifically, change the ptr_t typedefs for these LLCore classes to use
IntrusivePtr rather than directly using boost::intrusive_ptr. This allows us
to use a simple ptr_t(raw ptr) constructor rather than having to remember to
code ptr_t(raw ptr, false) everywhere. In fact, the latter form is now invalid:
remove the now-extraneous 'false' constructor parameters.
|
|
For a RefCounted subclass T, boost::intrusive_ptr<T> must be instantiated as
boost::intrusive_ptr<T>(raw ptr, false) to avoid immortal instances.
Forgetting that final bool parameter is both easy and extremely hard to spot
with desk checking or code review. IntrusivePtr<T> provides constructors that
Do The Right Thing, so we can typedef a subclass T's ptr_t to IntrusivePtr<T>
rather than directly to boost::intrusive_ptr<T>.
|
|
|
|
|
|
A couple of minor changes to merchant out box in hopes that the would fix the issues.
|
|
specified and when follow redirects is not specified on the options object.
|
|
Viewer media routines to coroutine.
Post with raw respons in llcorehttputil
LLCore::Http added headers only option (applies only on get)
|
|
Added JSON->LLSD converter
Added corohandler for JSON data
|
|
and use it for existing LLSomeClass::cleanupClass() calls.
This logs the fact of making the call, as well as making it.
|
|
Temp disable llmediaclient's unit tests for link issues.
|
|
|
|
Event polling as a coroutine. (incomplete)
Groundwork for canceling HttpCoroutineAdapter yields.
|
|
correctly to Event Pumps.
Added get/setRequestURL() to LLCore::HttpResponse
Removed URI from the HttpSDHandler.
|
|
|
|
|
|
Prep for some slight cleanup of the code.
Add AP_AVATAR Policy
|
|
|
|
fine.
|
|
|
|
|
|
|
|
|
|
shared_ptr
|
|
|
|
|
|
|
|
|
|
clang correctly notes that such tests add nothing to the runtime behavior of a
program. Unfortunately, clang notes that in the form of a compile error.
|
|
|
|
Under pipelining, requests were given a 5x timeout factor due to the
way that the timeout clock works in libcurl. Under CDN load,
connections were not being torn down quickly and it was only
this timer that led to disconnect and retry. So, we want to
break a connection that isn't making progress but that isn't
immediately possible. We'll compromise with a 60S timeout that
(we hope) will be neither too long for stalled connections nor
too short for large asset transfer requests.
|
|
|
|
comparison with <0 [-Wtautological-compare]
|
|
specify extra components of a format string that aren't populated in snprintf
|
|
Incorporate the new libcurl 7.38.0 build with curl bug 1420
workaround. Add developer-centric testing code to evaluate
the workaround or a future fix for 1420.
|
|
on the HTTP requests for inventory. We'll benchmark with that
and see how it goes. Document some of the history of the
background fetcher for future devs. Suggest some future
projects to make things faster. Pointers on using LLSD with
the llcorehttp library in the readme. And restructured
the LLSD onCompleted() processing phases using do{}while(false)
which produced a code flow that is fairly attractive.
|
|
of used handles and a fast handle factory that's thread-
correct.
|
|
reproduce data corruption via timeouts.
|
|
as transfers can appear delayed with deep pipelining and more
requests in the pool. Added bad HTTP status error (typically
getting a 0 back as HTTP status from libcurl) to the list of
retryable errors. There's a response stream problem with libcurl
and pipelining that induces this problem. Retrying helps but
may not be entirely safe. Watch bug 1420 on the libcurl sourceforge
bug tracker. Extend options of test/example program to include
un-ranged requests. Document the excessive data transfer induced
when ranged requests are disabled. This is an abnormal mode for
very rare users so we'll just eat that for now.
|
|
some problems disabling pipelining on a multi handle with outstanding
requests so build a more conservative system that allows requests
to drain before setting curl multi options. Would rather not have
this but it is significantly safer. "HttpPipelining" debug setting
is now fully dynamic. Connection limits can also be made dynamic
in the near future. Upped the default connection count back to 8 for
now but will revisit this in the tuning phase. It might be time to
combine mesh and textures into a single asset class. For normal
server operations that would be a clear path, but for server under
load, the current scheme may be better. Minor cleanup in logging
to elminate some redundant strings. Might add some more tracing to the
stall logic 'just in case'.
|
|
|
|
GetTexture and GetMesh2 at a pipeline depth of 5. Create
global debug option, HttpPipelining, to enable and disable
HTTP pipelining (defaults to true). Tweak texture and
mesh low- and high-water request levels based on pipelining
status and depth. Fixup texture console which was damaged
in a recent release. Split logging of the no-request
HTTP error case into two cases: one for missing URL in
HTTP request, one for HTTP request not created. A refactor
in llcorehttp is coming: I will be moving all libcurl-
using code into libcurl-specific modules.
|
|
|
|
|
|
|
|
projects
|
|
|