This value really IS in bytes/s (not for the total), and apparently 56
kB/s is too optimistic. The value was used by LL for transfers that went
beyond the total download time (2 minutes?), adding enough seconds per
received bytes to the timeout to allow a download at 56 kB/s to finish.
Our meaning is different however: we time out immediately and whenever
the download drops below this speed.
Perhaps a better algorithm is where the speed demand is based on the
total size of the download, but I'm not sure we always know the size of
downloads at this point.
When uploading finishes, but is not detected, the timeout should be for
"reply delay", the time that the server takes before it replies, and not
CurlTimeoutLowSpeedTime. This patch adds code that takes this failure
into account (which happened only ONCE for me on Metropolis while flying
around and using trickle (not sure if that is relevant), so it's not
that likely to improvement anything in practise. Note that it is
detected by an assertion when it happens, so that we can safely assume
it normally never happened on SL).
* Generalized PUT / POST configuration by adding
CurlEasyRequest::setPut, which now also supports keep-alive (which
still isn't used).
* Upload content length is now stored in CurlEasyRequest::mContentLength
* CurlEasyRequest::has_stalled() now return false if it was possbile
that the 'upload finished' detect failed AND calls upload_finished()
itself in that case, so it is no longer 'const'.
* If low speed is detect exactly when the last bytes are being attempted
to be sent (unlikely scenario), then the upload gets 4 more seconds
after which is switches to CurlTimeoutReplyDelay.
* Added EDoesAuthentication and EAllowCompressedReply to replace
booleans, for readability and type-safety, as did EKeepAlive. Note
that this change inverts the meaning of the compression related parameter.
* Unrelated: removed an unnecessary #include "llurlrequest.h" from
llxmlrpcresponder.h
Added libpathing to LLPHYSICSEXTENSIONS_INCLUDE_DIRS
llviewermenu updated a bit to be closer to v-d/rlva. Best viewed without space changes.
Updated llresmgr.cpp from v-d to "handle special case of input value being zero"
pipeline update: hideObject, restoreHiddenObject, hideDrawable, and unhideDrawable added.
Thanks to Henri Beauchamp for some UI code touchups, thanks to Zi Ree for Rebake notification.
Thanks to Mobius Ryba and Ansariel Hiller for the V1-style pathfinding icons.
Note: When opening from pie menu object selection is lost, unless the floater is already open..
This provides a more reliable reproduction of the bug we've been having with inspect.
Restores the cancel button with new functionality! In Freeze mode, it will exit freeze! Otherwise it will just close the floater as it used to do.
Lines up everything nicely, and removes overly complex tool tips.
Does not change or remove any existing functionality.
Refresh the snapshot when calling show after instance exists (IE: Via Keyboard shortcut)
Should never have been removed in the first place, the purpose of 7faa19b297 was to have an explicit click to refresh, this patch requires an explicit click.
This does NOT break keeping the same snapshot while switching settings
This fixes a bug where unref() was called when a state machine was
aborted before it reached bs_initialized. Debug code was added to detect
errors related to that.
In order to run HTTPGetResponder in any thread, I needed direct access
to LLHTTPClient::request, so I had to move that to the header file,
and therefore had to move ERequestAction from LLURLRequest to
LLHTTPClient to avoid include problems.
With this, textures are fetched with no latency: call to
LLHTTPClient::request runs all the way till the state machine is idle
(AICurlEasyRequestStateMachine_waitAdded). There is small delay till the
curl thread wakes up, which then processes the request and opens the url
etc. When the transaction is finished, it calls
AIStateMachine::advance_state(AICurlEasyRequestStateMachine_removed_after_finished)
which subsequently doesn't return until the state machine is completely
finished (bs_killed). The LLURLRequest isn't deleted yet at that point
because the AITimer of the LLURLRequest runs in the main thread: it is
aborted, but only the next time the main thread state engines run that
is deleted and the timer keeps an LLPointer to it's parent, the
LLURLRequest, so only then the LLURLRequest object is destructed. This
however has nothing to do with the texture-bandwidth loop.
Fixes the segfault that was accidentally overlooked because voice decided to not return after the first run as I worked on all the other warnings
Thanks to Latif Khalifa for the VoiceMultiInstance debug setting which enabled me to use voice again.
Cleans up some related code, probably looks nicer with space changes off.. though this is a pretty straightforward change.
Comments out code that still exists in xmls or might likely be added in future.
Each piece tested quite a bit.