Commit Graph

3846 Commits

Author SHA1 Message Date
Aleric Inglewood
58c07f8054 Don't return from abort() until the current execution, if any, finished. 2013-03-07 04:20:17 +01:00
Aleric Inglewood
380eec10fb Initialize mDebugRefCalled on restart. 2013-03-07 02:23:23 +01:00
Aleric Inglewood
b9b5f13624 Run HTTPGetResponder in any thread.
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.
2013-03-07 01:52:21 +01:00
Aleric Inglewood
4cd7dec92b Merge branch 'master' into curlthreading4
Conflicts:
	indra/aistatemachine/aistatemachine.cpp
	indra/aistatemachine/aistatemachine.h
	indra/llmessage/aicurleasyrequeststatemachine.cpp
2013-03-06 03:34:05 +01:00
Aleric Inglewood
c4dceaf3e9 Rewrite of AIStateMachine, version 2. 2013-03-06 03:26:43 +01:00
Aleric Inglewood
d1d09d7c18 Bail out instead of crash when parseTEMessage fails. 2013-03-05 03:51:45 +01:00
Aleric Inglewood
186c3ef88a Add support for xdg-open. 2013-02-27 17:22:10 +01:00
Aleric Inglewood
13e032fb04 Make AICurlThread::wakeup_thread thread-safe. 2013-02-23 23:29:43 +01:00
Aleric Inglewood
803e92020b Renamed AICurlThread::mWakeUpMutex --> AICurlThread::mWakeUpFlagMutex 2013-02-23 23:23:48 +01:00
Aleric Inglewood
b6cbed838f Assertion bug fix for libcwd with dc::curl on and curlio off. 2013-02-23 21:37:07 +01:00
Aleric Inglewood
19314b6686 Removed two unnecessary states from AICurlEasyRequestStateMachine
Removed AICurlEasyRequestStateMachine_added and
AICurlEasyRequestStateMachine_finished because the state machine is not
taking any action there anyway, and those states might be skipped all
together even, so they make no sense / shouldn't exist.
2013-02-23 21:33:37 +01:00
Aleric Inglewood
5d329d9e55 Fix initialization list order.
Also fixes a Dout line and initializes mState to 0 so
that if ever set_state would be called first from
a non-main thread then it will be larger (probably
not needed currently).
2013-02-23 21:13:26 +01:00
Aleric Inglewood
4851cc174e Revert "Work in progress"
This reverts commit ef35aa7954
because it contained too much wrong things that I won't be
using. I'll re-commit stuff from it after that that I do
want to keep.
2013-02-23 20:00:13 +01:00
Aleric Inglewood
78bb94eb42 Bug fix: remove remainder of test code 2013-02-23 19:36:18 +01:00
Aleric Inglewood
ef35aa7954 Work in progress
This work extends AIStateMachine to run multiplex() in the thread
that calls run(), cont() or set_state(). Note that all three
eventually call locked_cont(), so thats where multiplex() is called
from. Calling multiplex() means "running the state machine", as in
"calling multiplex_impl".

Currently only LLURLRequest uses this feature, and then only
for the HTTPGetResponder, and well only for the initializing,
start up and normal finish states.

A current/remaining problem is that we run into a situation where
the curl thread runs a statemachine to it's finish and kills it,
while the main thread is also 'running' it and tries to call
multiplex while the statemachine isn't running anymore.
2013-02-20 23:29:38 +01:00
Aleric Inglewood
ff3910a705 Merge remote-tracking branch 'singu/master' 2013-02-18 15:38:58 +01:00
Aleric Inglewood
14a2788ac4 Don't even crop in rawRawSnapshot.
This causes LLSnapshotLivePreview::getAspectSizeProblem to never return
CANNOT_CROP_HORIZONTALLY or CANNOT_CROP_VERTICALLY anymore, making
the chance to successfully upload or save to a different target larger.
2013-02-17 22:31:32 +01:00
Siana Gearz
6123c9b80a Enable broadcast viewer effects by default 2013-02-17 16:00:59 +01:00
Siana Gearz
dbdd0ec4f1 Merge branch 'Canon' of git://github.com/Lirusaito/SingularityViewer 2013-02-17 15:40:27 +01:00
Siana Gearz
0f54a2777e Merge branch 'master' of git://github.com/lkalif/SingularityViewer 2013-02-17 15:36:59 +01:00
Siana Gearz
49c872c86d Merge branch 'sunshine' of https://github.com/Shyotl/SingularityViewer 2013-02-17 15:28:48 +01:00
Siana Gearz
6bf661e079 Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2013-02-17 15:27:28 +01:00
Siana Gearz
ef4c7d9433 Some transform update fixes.
Thanks to MartinRJ and Henri for updateXform poking.
2013-02-17 15:23:25 +01:00
Shyotl
c3c34deb10 Added reload option to attachment 'tool' pie submenu. 2013-02-17 02:55:05 -06:00
Shyotl
4cc35d6c66 Fixed up some silly issues with the client tag system. 2013-02-17 02:54:30 -06:00
Latif Khalifa
e83befcb6b Updated 32 bit Linux prebuilt of PCRE based on NickyP's work in Kokua. Includes unicode support. 2013-02-16 02:19:57 +01:00
Latif Khalifa
bb527b6ed1 Updated 64 bit Linux prebuilt of PCRE based on NickyP's work in Kokua. Hopefully fixes startup crash on some distros 2013-02-16 01:03:43 +01:00
Shyotl
51cbb8d6bd Catch up with LL regarding viewer stat recording. 2013-02-14 17:45:10 -06:00
Aleric Inglewood
dc3f33717c Fixed assertion in HTTPTimeout::lowspeed
mTotalBytes had the meaning of "the sum of all elements in the vector",
but was reset to 0 at the start of a transaction. The meaning is now
changed to "total number of bytes in the vector that belong to the
current transaction".
2013-02-14 00:09:42 +01:00
Shyotl
2f5ab6f8e8 Once more, with feeling. (currency transaction messages) 2013-02-13 16:31:16 -06:00
Lirusaito
7a319d26d5 Extend support for custom menus by accepting messages issued by the server without question 2013-02-13 16:51:42 -05:00
Lirusaito
5d3341bc00 Correctly position custom dropdown menus 2013-02-13 14:17:34 -05:00
Lirusaito
7ca767275f Add support for CustomMenuAction Capability 2013-02-13 13:00:40 -05:00
Aleric Inglewood
86a0536131 Compile error fix: __value is reserved on Windows. 2013-02-13 17:20:41 +01:00
Lirusaito
4d3fb7affe Support SimulatorFeature god_names, used for identifying those the Sim reveals to be gods. 2013-02-13 03:11:20 -05:00
Lirusaito
c7fcaa8e5b Add setFeaturesReceivedCallback for when SimulatorFeatures cap is received 2013-02-13 03:04:29 -05:00
Shyotl
8ec5915b7c Removed some logic in llfloateravatarlist that shouldn't have been there. 2013-02-12 20:49:39 -06:00
Shyotl
a31ba15dbc Updated LLFloaterBuyContents 2013-02-12 20:49:17 -06:00
Shyotl
f147a734b1 LLStat dead code removal 2013-02-12 20:47:55 -06:00
Lirusaito
43bb5d6e39 Add bool LLMuteList::isLinden(const LLUUID& id) for use in situations where the available name may be just display name, but there is a UUID available instead. 2013-02-12 20:43:10 -05:00
Aleric Inglewood
c6c343a45b Compile bug fixes when -DDEBUG_CURLIO 2013-02-12 23:44:55 +01:00
Aleric Inglewood
b40e8fb508 Add checkbox "Keep aspect ratio" to snapshot floater. 2013-02-12 22:21:39 +01:00
Shyotl
6725c17f01 LLSys merge and cleanup. 2013-02-12 15:10:15 -06:00
Shyotl
24efffc68a LLInitParam merge. 2013-02-12 15:08:11 -06:00
Shyotl
c92c68dee2 A few more preview-related changes. 2013-02-12 15:07:07 -06:00
Shyotl
1eb142535c Merge in changes to avoid a few potential problems with LLUUID when accessed from multiple threads. 2013-02-12 15:02:17 -06:00
Shyotl
b901e57c55 Start culling of llmemtype (for now just #ifdef'd to nothingness. 2013-02-12 15:00:50 -06:00
Shyotl
0742610674 Updated gObjectPreviewProgram shader (simple lighting) 2013-02-12 14:59:02 -06:00
Shyotl
655c9348de Minor adjsutment to llcontrolgroup. Demote non-critical failure from llerrs to llwarns. 2013-02-12 14:53:56 -06:00
Shyotl
0a8147a9da Merged some alignment adjustments from sunshine-external 2013-02-12 14:52:53 -06:00