Commit Graph

278 Commits

Author SHA1 Message Date
Aleric Inglewood
785729abdf Merge branch 'master' into curlthreading2 2012-07-22 04:17:34 +02:00
Aleric Inglewood
2830b35aa6 Avoid dead lock in LLQueuedThread::generateHandle / LLTextureFetchWorker::callbackDecoded
Thead 1:

indra/llcommon/llqueuedthread.cpp:456:

452                     if (complete)
453                     {
454                             lockData();             // This locks LLThread::mRunCondition
455                             req->setStatus(STATUS_COMPLETE);
456                             req->finishRequest(true);

LLImageDecodeThread::ImageRequest::finishRequest calls:
    mResponder->completed(success, mDecodedImageRaw, mDecodedImageAux);

LLTextureFetchWorker::DecodeResponder::completed calls:
    worker->callbackDecoded(success, raw, aux);

LLTextureFetchWorker::callbackDecoded calls:
    LLMutexLock lock(&mWorkMutex);                      // This locks LLTextureFetchWorker::mWorkMutex

Thread 2:

LLTextureFetchWorker::doWork calls:
    LLMutexLock lock(&mWorkMutex);                      // This locks LLTextureFetchWorker::mWorkMutex
    .
    .
    .
    mDecodeHandle = mFetcher->mImageDecodeThread->decodeImage(mFormattedImage, image_priority, discard, mNeedsAux, new DecodeResponder(mFetcher, mID, this));

LLImageDecodeThread::decodeImage calls:
    handle_t handle = generateHandle();

LLQueuedThread::generateHandle calls:
    lockData();                                         // This locks LLThread::mRunCondition
2012-07-22 04:13:23 +02:00
Aleric Inglewood
7f78870295 Merge remote-tracking branch 'siana/master' into curlthreading2
Conflicts:
	indra/llcommon/llstring.cpp
	indra/llmessage/llcurl.cpp
	indra/newview/llviewertexturelist.cpp
	indra/newview/viewer_manifest.py
	install.xml

Resolved:
	indra/llcommon/llstring.cpp :
		two different ways to work around compile error.
	indra/llmessage/llcurl.cpp :
		this file is no longer used.. I deleted huge
		parts to mark that I implemented that. Siana
		apparently made a few changes in those parts.
	indra/newview/llviewertexturelist.cpp :
		manually copied patch. Mine also removed trailing
		spaces, keeping that.
	indra/newview/viewer_manifest.py:
		Collision with changes from Liru, which have been
		ignored (kept siana/master).
	install.xml:
		Collision with an earlier screw up. I kept the
		fix from siana/master.
2012-07-18 02:08:31 +02:00
Siana Gearz
891a330955 Version 1.7.0 2012-07-16 12:19:22 +02:00
Drake Arconis
edb144bd1d Fixed ugly workaround for compiler detection
Corrected ugly workaround for compiler detection in code with
correct definition in llpreprocessor.h and updated various #if
to reflect this.
2012-07-10 14:15:59 -04:00
Aleric Inglewood
f012f664d2 Threading voodoo: allow multiple concurrent calls to set_state().
This patch prepares AIStateMachine for the use of AITimer together
with calls to set_state() from other threads. The extra problem
in this case is that the main-thread CAN start running the state
machine again (when the timer times out), while before it was
assumed to be idle until a thread called set_state.

This also takes into account that a thread might call set_state()
and then AGAIN call set_state() before the main thread gets the
chance to call idle() inbetween.
2012-07-09 04:19:28 +02:00
Drake Arconis
cb0f4f8f10 Added support for Intel c++ Composer Xe
Added support for building with Intel C++ Composer Xe
Fixed a warning thrown by it
2012-07-08 10:29:28 -04:00
Aleric Inglewood
93778eccbb Compile fix for g++ 4.7 2012-07-07 18:29:55 +02:00
Lirusaito
9c61998dac Spelling fixes...
to a header *sigh*
2012-07-03 00:54:25 -04:00
Drake Arconis
947990c2ad Merge remote-tracking branch 'aleric/V2MultiWear' into AltCompilers 2012-07-03 00:34:07 +00:00
Aleric Inglewood
e36042bb76 More that I forgot it extract from curlthreading2. 2012-07-03 02:33:09 +02:00
Drake Arconis
7ad1b8731d Merge remote-tracking branch 'aleric/V2MultiWear' into AltCompilers 2012-07-02 21:25:40 +00:00
Aleric Inglewood
d66acdf240 Add the rest of sRunning too. 2012-07-02 23:22:42 +02:00
Drake Arconis
8eb319d3ba Merge remote-tracking branch 'aleric/V2MultiWear' into AltCompilers 2012-07-02 21:08:04 +00:00
Drake Arconis
c464a8da30 Merge branch 'V2MultiWear' of bitbucket.org:Lirusaito/singularityviewer into AltCompilers
Conflicts:
	indra/cmake/00-Common.cmake
	indra/newview/llvovolume.cpp
2012-07-02 20:16:56 +00:00
Lirusaito
e6689f830a Update llstring, and fix an error only presented in debug builds. 2012-07-02 15:57:55 -04:00
Drake Arconis
ece9dda7b4 Initial support for the Clang compiler and numerous warning fixes 2012-07-02 19:45:41 +00:00
Lirusaito
24db228406 Merge branch 'V2MultiWear' of git://github.com/Shyotl/SingularityViewer into V2MultiWear
Conflicts:
	indra/llrender/llvertexbuffer.h
	indra/newview/llface.cpp
	indra/newview/llpaneleditwearable.h
2012-07-02 04:14:52 -04:00
Shyotl
67e1a3b004 Lindie viewer-dev catchup regarding rendering pipeline. 2012-06-30 20:05:31 -05:00
Aleric Inglewood
cb5efad026 Turn llassert[_always] into a (single) statement and print line nr in decimal. 2012-06-30 21:14:18 +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
Aleric Inglewood
221e3908b9 There is no need to use a pure virtual destructor, and doing so crashes libcwd when configured with --enable-alloc. 2012-06-27 04:27:09 +02:00
Aleric Inglewood
0bee4a922f Make sure that sRunning <= number of threads with status RUNNING. 2012-06-27 04:27:08 +02:00
Aleric Inglewood
5996ff1fa2 Fixed a comment. 2012-06-27 04:27:08 +02:00
Aleric Inglewood
e7a3a150a7 Add AIThreadSafeBits::wrapper_cast to cast wrapped object back to wrapper class. 2012-06-27 04:27:08 +02:00
Aleric Inglewood
e9df867a21 Like the other AIThreadSafe* objects, disallow AIThreadSafeSingleThread copy/assign 2012-06-27 04:27:07 +02:00
Aleric Inglewood
4391614d6e AIThreadSafe* update.
Updated/added documentation.
Removed AIThreadSafeWindowsHack that annoyed me (fix your compiler).
Don't use 'static' in anonymous namespace.
Use the AIThreadSafe*DC variants for default constructed objects,
as opposed to the AITHREADSAFE* macro's.
2012-06-27 04:27:07 +02:00
Aleric Inglewood
d63c54cb78 Allow AIThreadSafe*DC classes to be constructed with zero or one parameter.
Also, allow AIThreadSafeSingleThreadDC objects to auto convert
to it's underlaying type, to assign that type and to write it
directly to an ostream.
2012-06-27 04:27:07 +02:00
Aleric Inglewood
058720824d Fixup of LLAtomic and LLThreadSafeRefCount 2012-06-27 04:27:07 +02:00
Aleric Inglewood
eb7615ad57 Merge branch 'master' into V2MultiWear 2012-06-27 04:26:44 +02:00
Lirusaito
0ad533d94d STORM-1870 and Have a space before old names in parentheses, like V3.
Also small fixes, some spelling, some important; synchronize with upstream a bit..
Jonathan Yap: STORM-1870 Avatar tracking beacon doesn't get disabled if DESTINATION_REACHED_RADIUS is reached
2012-06-09 17:07:20 -04:00
Lirusaito
a82953d0d0 Few more GCC 4.7 fixes.
include unistd when not on windows.
2012-04-29 00:25:40 -04:00
Shyotl
b49ad1cd34 RLVa impl updated to that used in v3. Hooked RLVa restrictions back into wearables. New RLVa floater: 'Locks...' Also updated 'Restrictions...' floater. 2012-04-12 10:29:45 -05:00
Aleric Inglewood
b18bc08600 Add AIAccessConst, AISTAccess, AISTAccessConst, ...
Also added AIThreadSafeSingleThread, AIThreadSafeSingleThreadDC
and AITHREADSAFESINGLETHREAD
2012-03-13 16:32:10 +01:00
Aleric Inglewood
fffbda1b90 Add ASSERT_SINGLE_THREAD 2012-03-12 04:37:55 +01:00
Aleric Inglewood
8c721c4a69 Merge/collision fix.
Belonged in previous commit really.
2012-03-12 04:37:16 +01:00
Aleric Inglewood
87b8f6e076 Merge with siana/master. Resolved conflicts.
Conflicts: removal of trailing space (to be the same as
viewer 3) in one instance collided with a patch of Siana.

I had moved isSelfLocked.
2012-03-11 03:21:45 +01:00
Aleric Inglewood
52b4008968 Prepare synchronization with viewer-development.
Synchronization will be complete after viewer-development
gets my LLAPRPool and LLAPRFile patch that I'm currently
working on.
2012-03-06 23:10:43 +01:00
Aleric Inglewood
c1133cb932 Use LLAPRPool
apr_pool_t* should not be used anywhere, except where a comment
explicitely says it's ok. This one apparently sneeked in in the
meantime.
2012-03-06 17:04:05 +01:00
Siana Gearz
83a3bbb48e Fixies from viewer-development 2012-03-06 09:01:01 +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
Siana Gearz
a7d70878b7 Log threadcount together with memory 2012-02-29 16:03:11 +01:00
Aleric Inglewood
0450358df3 Clean up after Linden Lab 2012-02-23 18:50:28 +01:00
Aleric Inglewood
b8744b9e6a LLViewerRegion WIP: Added all headers that are dragged in.
Most in particular llevents.h, which comes along with
the demand that the old events in llevent.h are put
in a namespace LLOldEvents. Made all changes necessary
to compile the rest of the code again (without changing
the actual code: it's still using the old events).

This patch also removes LLStopWhenHandled and LLStandardSignal
from indra/llui/llnotifications.h because those are
moved to llevents.h. That seems to be the only change
to indra/llui/llnotifications.h that isn't floater related,
so I left the rest of that file alone.
2012-02-18 02:22:49 +01:00
Aleric Inglewood
0a59b3bb54 Merge remote-tracking branch 'siana/master' 2012-02-10 02:14:44 +01:00
Aleric Inglewood
d4591828c8 Finished AIFrameTimer.
Added documentation.
Added AIFrameTimer::isRunning.
Fixed a bug: mCallback was deleted before it was used.
2012-02-10 01:37:43 +01:00
Siana Gearz
acf378e9f2 Auto-version system 2012-02-09 14:03:49 +01:00
Lirusaito
d85e1afd7e Spelling fix to documentation. 2012-02-05 18:18:22 -05:00
Shyotl
2617df44db VC doesn't seem to like ctor being used to assign a reference pointer. 2012-02-05 05:58:36 -06:00
Shyotl
01a8e11ef3 Merge branch 'master' of https://github.com/AlericInglewood/SingularityViewer.git
Conflicts:
	indra/llcommon/llfasttimer_class.cpp
	indra/llcommon/llfasttimer_class.h
2012-02-05 05:57:44 -06:00