Commit Graph

18 Commits

Author SHA1 Message Date
Aleric Inglewood
3f1fb9a66e Add improved timeout handling for HTTP transactions.
Introduces AIHTTPTimeoutPolicy objects which do not just
specify a single "timeout" in seconds, but a plethora of
timings related to the life cycle of the average HTTP
transaction.

This knowledge is that moved to the Responder being
used instead of floating constants hardcoded in the
callers of http requests. This assumes that the same
timeout policy is wanted for each transaction that
uses the same Responder, which can be enforced is needed.

I added a AIHTTPTimeoutPolicy for EVERY responder,
only to make it easier later to tune timeout values
and/or to get feedback about which responder runs
into HTTP errors in debug output (especially time outs),
so that they can be tuned later. If we already understood
exactly what we were doing then most responders could
have been left alone and just return the default timeout
policy: by far most timeout policies are just a copy
of the default policy, currently.

This commit is not finished... It's a work in progress
(viewer runs fine with it though).
2012-10-05 15:53:29 +02:00
Aleric Inglewood
69ca6cd5b2 WIP: Make curl thread code robust and flexible.
Conflicts:

	indra/llmessage/llcurl.cpp
	indra/llmessage/llcurl.h
	indra/newview/app_settings/settings.xml
	indra/newview/llappviewer.cpp
	indra/newview/llmeshrepository.cpp

Resolved:

	indra/llmessage/llcurl.cpp:

	  Basically removed (not used anyway)

	indra/llmessage/llcurl.h:

	  Basically removed (just includes aiculr.h now)

	indra/newview/app_settings/settings.xml:

	  CurlUseMultipleThreads was remvoved.
	  CurlMaximumNumberOfHandles and CurlRequestTimeOut
	  are still in there, but unused at the moment.

	indra/newview/llappviewer.cpp:

	  CurlMaximumNumberOfHandles and CurlRequestTimeOut
	  are unused at the moment.

	indra/newview/llmeshrepository.cpp:

	  Lock mSignal always (is unlocked inside wait()).
	  Use mSignal lock to see if we are waiting; remove mWaiting.
	  Return false from the MeshFetch functions iff we have to retry
	  a HTTP fetch. Catch the error exception thrown by getByteRange
	  instead of using it's return value (always returns true
	  anyway).
2012-06-28 01:30:46 +02:00
Lirusaito
8e6063e7b9 Fixed compile errors for gcc4.7 (also reported by clang) 2012-04-28 21:29:52 -04:00
Siana Gearz
70438fa06f Catching up with Lindies part 3 2012-03-26 15:01:53 +02:00
Siana Gearz
1e9e7d701d fix for SH-2941: crash at LLCurl::Easy::~Easy() (Bao Linden) 2012-03-21 21:31:42 +01:00
Siana Gearz
8b6f462d13 Wholesale update of llmessage to V3.2
Note that this removes message logger for now.
2012-03-06 07:31:15 +01:00
Lirusaito
61beedd3d9 Changed style of comments with asterisks to avoid highlighting errors on //* with weak highlighters, change is to all files that could potentially break highlights
Most were needed, though some were just for possible problems with highlighting, should not affect performance whatsoever.
2012-01-09 05:40:03 -05:00
Shyotl
c621cb7719 Curl had some structures moved to the header. Also had an extra mutex added for locking multihandle. Includes MISC #include order cleanup. 2011-09-22 23:59:44 -05:00
Shyotl
c918384805 Tempfix for curl locking mutexes for too long 2011-08-09 20:57:16 -05:00
Shyotl
9aa26648c9 Added CurlUseMultipleThreads (requires restart to change) 2011-08-06 02:29:04 -05:00
Aleric Inglewood
13be594651 Add proper locking around between threads shared variables and the calls to signal() and wait(). 2011-08-01 23:46:54 +02:00
Shyotl
28568add4c Threaded cURL. Consider experimental (what in this branch isn't?), however it drastically reduces hitching for me... so yup. 2011-07-31 02:53:26 -05:00
Shyotl
c029f00e12 CURL easy handles are now cached for reacquisition. Should lessen hitching by about half on systems exhibiting such. 2011-05-20 19:03:43 -05:00
Aleric Inglewood
4d932d5e2d Added a thread-safe and robust wrapper for APR pools.
See http://redmine.imprudenceviewer.org/issues/590
and https://jira.secondlife.com/browse/SNOW-596
2011-05-05 02:52:55 +02:00
Shyotl
f9937d7f8a V2 llmessage merge, incl. llcommon requisites.
Excluded llareslistener, as that appears to only be present for unit-testing
Excluded new SSL methods because, well, they don't work right reliably in v2 for me
2011-02-25 19:30:59 -06:00
Siana Gearz
d68736da39 Put in some changes along sg1.4 dev history. 2010-11-21 15:57:44 +01:00
Siana Gearz
2df81c3580 Build fixes 2010-10-18 20:43:10 +02:00
Hazim Gazov
7a86d01598 Imported existing code 2010-04-02 02:48:44 -03:00