Commit Graph

5232 Commits

Author SHA1 Message Date
Aleric Inglewood
811f670199 AIStateMachine fixes.
Things (one debug code only) that don't happen currently,
but that I ran into with AIMultiGrid.
2013-10-16 00:30:28 +02:00
Aleric Inglewood
e40d622b8c Merge remote-tracking branch 'singu/master' 2013-10-15 23:07:34 +02:00
Aleric Inglewood
09708b6318 Added AICondition.
AICondition is like AIThreadSafeSimpleDC (it is derived from it),
and wraps some variable, protecting it with a builtin mutex.

While in a statemachine, one can call wait(condition) to make
the state machine go idle, and call condition.signal() to
wake it (or another) up again.

While normally a condition variable is used as follows:

condition.lock();
while (!whatwerewaitingfor)
{
  condition.wait();
}
// Here the condition is guaranteed to be true and we're
// still in the critical area of the mutex.
condition.unlock();

where the thread blocks in wait(), the statemachine actually
returns CPU to the thread (the AIEngine), so there is no
while loop involved, and our wait() doesn't even unlock
the mutex: that happens because the state machine returns:

condition_wat condition_w(condition);		// Lock condition.
if (!condition_w->whatwerewaitingfor())		// The variable(s) involved can only be accessed when condition is locked.
{
  wait(condition);				// Causes the state machine to go idle. This does not block.
  break;					// Leave scope (unlock condition) and return to the mainloop - but as idle state machine.
}
// Here the condition is guaranteed to be true and we're
// still in the critical area of the condition variable.

In this case, when condition.signal() is called, the thread
doesn't return from wait() with a locked mutex - but the
statemachine executes the same state again, and enters from
the top: locking the condition and doing the test again,
just like it would be when this was a while loop.
2013-10-15 22:30:53 +02:00
Aleric Inglewood
9114f04ef6 Add AIStateMachine::yield_if_not
This can be used to switch to a specific engine.
If the state machine is not running in the passed engine,
then it performs a yield to that engine, otherwise it keeps
running. Hence, putting this at the top of a state
guarantees that it runs in that engine.

For example:

    case FrontEnd_done:
    {
      // Unlock must be called by the same thread that locked it.
      if (yield_if_not(&gStateMachineThreadEngine))
      {
        break;
      }
      // Here we are running in gStateMachineThreadEngine.
    ...
2013-10-15 22:30:16 +02:00
Aleric Inglewood
9db6bc0557 Add AIStateMachine::mSMDebug
The patch is exclusively libcwd related.

Turns off output from statemachines to dc::statemachine by default.
Allows to turn on the debug output on a per statemachine basis (at
compile time).
2013-10-15 22:29:52 +02:00
Latif Khalifa
897392f7e0 Don't log debug level info during shader loading 2013-10-15 07:23:23 +02:00
Latif Khalifa
7f52f78517 Breaking pad: restore 'Ask' preference for sending reports, cleanup remaining out-of-process bits 2013-10-15 07:20:57 +02:00
Latif Khalifa
bb7793283d Merge branch 'master' of git://github.com/Shyotl/SingularityViewer 2013-10-15 07:18:58 +02:00
Inusaito Sayori
43f25fed9b [Warnings] Fix linux32 warnings again (missed some spots) 2013-10-14 19:42:08 -04:00
Shyotl
4da896682d Fixed a couple obscure crashes. 2013-10-13 19:37:01 -05:00
Shyotl
6155e64086 Merge branch 'master' of https://github.com/singularity-viewer/SingularityViewer.git 2013-10-13 19:27:03 -05:00
Shyotl
dbfd0cb7a6 Fixed a shutdown crash in LLAudioEngine::assetCallback, and fixed behavior when soundsource re-issues a sound whilst a sound is currently playing for same source. (LLAudioChannel[Impl]::play now re-starts sound if already playing) 2013-10-13 16:22:24 -05:00
Latif Khalifa
aa077032b7 Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2013-10-12 22:45:05 +02:00
Aleric Inglewood
1389bf76ce Bug fix. 2013-10-12 22:36:27 +02:00
Latif Khalifa
f096f181f3 Merge branch 'master' of git://github.com/Shyotl/SingularityViewer 2013-10-12 22:09:37 +02:00
Aleric Inglewood
1df09dec35 Remove assert that 100% reproducible fired - stopping me from logging in.
I wanted to fix the problem, but:
[21:45] <Aleric> Talking about dense - you guys want this to be fixed or not???
[21:45] <lkalif> no
2013-10-12 21:48:51 +02:00
Aleric Inglewood
8e0e532ea8 Merge remote-tracking branch 'singu/master' 2013-10-12 21:48:32 +02:00
Shyotl
daa07d031c Fixed a couple of compilation errors when using GCC. 2013-10-12 12:13:58 -05:00
Latif Khalifa
cb12a35102 Merge branch 'master' of git://github.com/Shyotl/SingularityViewer
Conflicts:
	indra/llaudio/llaudioengine.cpp
2013-10-12 10:04:05 +02:00
Latif Khalifa
e8c286308d Merge branch 'master' of git://github.com/AlericInglewood/SingularityViewer 2013-10-12 10:01:52 +02:00
Shyotl
7fb05e6a48 Audio engine changes:
-Idle tick is now responsible for dispatching all pending sound sources, as such improves priority sorting.
-Added ui sound precache mechanisms (to fetch sounds without associated soundsources)
-Audio engine no logner available pre-login or upon disconnect, for simplicity.
-General cleanup to the audio engine/impl.
-Fixed some gAudiop calls that were lacking prerequisite null checks.
-Added 'isUpstreamOK' procuedure to LLAssetStorage to allow avoidance of making requests when there is no upstream host connection.
2013-10-12 02:49:11 -05:00
Aleric Inglewood
3b2393dbda Merge remote-tracking branch 'singu/master' 2013-10-11 13:42:06 +02:00
Aleric Inglewood
0261eac2a4 Fix for crash report 1272 2013-10-11 13:35:32 +02:00
Latif Khalifa
69f273eb0e Don't crash if pay floater is closed before reply arrives from the server
Fix from upstream
Potentially fixes http://crash.singularityviewer.org/crashes.php?stacktrace=processPayPriceReply
2013-10-11 13:14:59 +02:00
Inusaito Sayori
477daff92f [Warnings] Fix linux32's "format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘size_t’" 2013-10-11 05:53:57 -04:00
Latif Khalifa
926e76adea Dump the whole login response to the log file only in the debug builds 2013-10-11 10:12:35 +02:00
Inusaito Sayori
9429b875aa Demote common "Splitting" warning to debugs 2013-10-11 04:06:38 -04:00
Inusaito Sayori
f268c26a3a [LLIMMgr/LLIMPanel] Fix the crashes in notifyParticularFriendObservers()
Forgot to write this line amidst everything else, my bad.
2013-10-11 03:25:32 -04:00
Inusaito Sayori
aa86730df2 [LLIMMgr/LLIMPanel] Fix race condition between name lookup and title setting 2013-10-11 00:45:23 -04:00
Inusaito Sayori
80bb529220 Merge branch 'master' of https://github.com/DamianZhaoying/SingularityViewer 2013-10-10 22:16:39 -04:00
Damian Zhaoying
7cc99ebf72 update spanish messages in IM floaters 2013-10-10 23:15:33 -03:00
Inusaito Sayori
be5727548b Fix a warning typo and a minor bug I thought I'd fixed long ago indicated by some getString warning spam 2013-10-10 20:25:15 -04:00
Inusaito Sayori
54c08b3ea0 Localize the new Silent Accept/Decline messages 2013-10-10 18:28:06 -04:00
Inusaito Sayori
8964cfd58b [LLIMMgr/LLIMPanel Revision] Compile Fixies
How did these even
2013-10-10 17:01:18 -04:00
Latif Khalifa
cf214e4f9e Silence compiler warnings 2013-10-10 22:07:43 +02:00
Latif Khalifa
2a830c3184 Merge branch 'master' of https://github.com/slabua/SingularityViewer 2013-10-10 21:58:25 +02:00
Latif Khalifa
c313d5fe28 Merge branch 'master' of https://github.com/AdeonWriter/SingularityViewer 2013-10-10 21:58:19 +02:00
Inusaito Sayori
390c097c6a Merge branch 'master' of https://github.com/DamianZhaoying/SingularityViewer 2013-10-10 15:53:32 -04:00
Salvatore La Bua
ebc839d540 Rearrange silent keep/discard inventory offer buttons 2013-10-10 21:49:49 +02:00
Salvatore La Bua
20ee6cdb72 Add silent keep/discard inventory offer buttons
Adapted from Phoenix code
2013-10-10 20:21:46 +02:00
Inusaito Sayori
d503662b58 Merge branch 'master' of https://github.com/singularity-viewer/SingularityViewer 2013-10-10 04:41:08 -04:00
Inusaito Sayori
91f6a4efa3 [OpenSim] Feature Request: Don't clamp max_import_scale to 240 on NonSL grids, and make max_import_scale start off based on the hippolimits' MaxPrimScale, not the SL-constant 2013-10-10 04:36:47 -04:00
Inusaito Sayori
13e25cfe6a Feature Request: Add MiniMapPrimMaxAltitudeDelta and MiniMapPrimMaxAltitudeDeltaOwn to debug settings for users to configure how much altitude difference prims can have to be shown on the minimap 2013-10-10 04:29:12 -04:00
Inusaito Sayori
3fad577f2b Fix spammy Texture WARNS to be DEBUGS as they should, also spellind fix 2013-10-10 04:22:48 -04:00
Inusaito Sayori
2f334b021f [LLIMMgr/LLIMPanel Revision] Two last things
Handle display of popped out IM floaters better
send_start_session_messages(): cut early if ids is empty, fallback on UDP if there is a region but there isn't ChatSessionRequest Cap
2013-10-10 04:21:19 -04:00
Inusaito Sayori
363fa450fb [LLIMMgr/LLIMPanel Revision] More Miscellaneous Code Cleanup 2013-10-10 04:18:08 -04:00
Inusaito Sayori
b049353178 [LLIMMgr/LLIMPanel Revision] Clean up construction of IM Floaters, so much redundant code!!
Removes mProfileButtonEnabled and lookupName()
2013-10-10 04:14:09 -04:00
Inusaito Sayori
0a874b0768 [LLIMMgr/LLIMPanel Revision] Don't let new messages ever change the active communications tab (perhaps fixes StockMaster's issue?) 2013-10-10 04:10:02 -04:00
Inusaito Sayori
a179f95057 [LLIMMgr/LLIMPanel Revision] Clean up ignored groups logic 2013-10-10 04:08:01 -04:00
Inusaito Sayori
402f4f7068 [LLIMMgr/LLIMPanel Revision] Feature Request: Friendship operations from IM
Also adds the toggle mute option, but this was deemed too risky and has been left commented out for future projects to decide for themselves on
2013-10-10 04:03:41 -04:00