Do not count long poll connections against CurlConcurrentConnectionsPerService

This is necessary for opensim mega regions that can have up to 16 long
poll connections for a single service, while upping the maximum number
of connections per service just for that is clearly nonsense.

I also changed that long poll connections do not "use" the "Other"
capability type (which shows that the debug info in the HTTP debug
console for the Other capability type turns grey when it only has event
poll connections). As a result additional connections become available
for textures, mesh and the inventory (the other capability types) on
opensim, which has all types on the same service, because now Other
does no longer constantly reserves a full share of the available
connections. This makes the actual number of connections used for
textures and mesh a lot more like it is on Second Life.
This commit is contained in:
Aleric Inglewood
2013-09-30 17:31:17 +02:00
parent 227c621dad
commit 723f4963e0
8 changed files with 81 additions and 12 deletions

View File

@@ -418,6 +418,7 @@ class BufferedCurlEasyRequest : public CurlEasyRequest {
buffer_ptr_t mOutput;
LLHTTPClient::ResponderPtr mResponder;
AICapabilityType mCapabilityType;
bool mIsEventPoll;
//U32 mBodyLimit; // From the old LLURLRequestDetail::mBodyLimit, but never used.
U32 mStatus; // HTTP status, decoded from the first header line.
std::string mReason; // The "reason" from the same header line.
@@ -466,6 +467,7 @@ class BufferedCurlEasyRequest : public CurlEasyRequest {
// Return the capability type of this request.
AICapabilityType capability_type(void) const { llassert(mCapabilityType != number_of_capability_types); return mCapabilityType; }
bool is_event_poll(void) const { return mIsEventPoll; }
// Return true if any data was received.
bool received_data(void) const { return mTotalRawBytes > 0; }