Commit Graph

34 Commits

Author SHA1 Message Date
Drake Arconis
eef53e3eac Merge branch 'master' of git://github.com/singularity-viewer/SingularityViewer 2013-05-12 10:08:49 -07:00
Drake Arconis
e0ef803ed5 Fix issue a different way and supress new gcc 4.8 warning 2013-05-05 19:24:13 -07:00
Aleric Inglewood
84e7f15dc5 Fix initialization list order (compiler warnings) 2013-05-06 03:26:22 +02:00
Drake Arconis
73b10e6b29 Made compiler detection more reliable and cleanup clang warnings 2013-05-05 17:56:16 -07:00
Latif Khalifa
70eb45e923 Revert "TEMPORARILY disable erroring out during mesh upload"
This reverts commit 3bdeb8e8a8.
2013-04-20 04:53:44 +02:00
Latif Khalifa
3bdeb8e8a8 TEMPORARILY disable erroring out during mesh upload 2013-04-20 00:28:36 +02:00
Latif Khalifa
8584e6da4c Merge branch 'master' into meshupload
Conflicts:
	indra/llcommon/llhash.h
	indra/newview/CMakeLists.txt
	indra/newview/llfloatermodelpreview.cpp
	indra/newview/llfloatermodelpreview.h
	indra/newview/llpanelprofile.h
2013-01-30 00:36:31 +01:00
Aleric Inglewood
6dc4a60724 Changes to LLThread
* Call a virtual terminated() that by default sets mStatus to STOPPED,
  instead of setting it to STOPPED directly, allowing to override
  the behavior of a LLThread derived class when the thread is about
  the exit.
* Make setQuitting() public, so it can also be used to hint to a
  thread that it should stop at its earliest convience.
2013-01-26 19:15:57 +01:00
Shyotl
d71210e942 Trivial changes, mostly to clean up diff noise. Majority of changes are comment corrections or licenseinfo updates. (does not include newview directory) 2013-01-07 14:44:54 -06:00
Aleric Inglewood
26a734a538 Add fasttimers around obtaining a mutex or waiting on a condition. 2012-11-10 02:33:48 +01:00
Aleric Inglewood
c0ac428179 Code cleanup
* Moved Responder stuff to LLHTTPClient.
* Renamed LLHTTPClient::Responder to LLHTTPClient::ResponderWithResult.
* Deleted LLHTTPClientAdapter and LLHTTPClientInterface.
* Renamed AICurlInterface::TransferInfo to AITransferInfo and moved it
  to llhttpclient.h
* Removed 'CURLcode code' argument from completed_headers.
2012-10-31 23:11:42 +01:00
Aleric Inglewood
daac25c343 Bug fix, introduced in commit 0bee4a92 2012-10-22 20:31:33 +02:00
Aleric Inglewood
3469d65f95 Windows compile and linker fixes.
* Do not include aithreadid.h from debug.h, because the latter is
  included everywhere (from linden_common.h) and aithreadid.h is
  heavy (includes among others windows.h).
* On windows, thread local members cannot be exported.
2012-08-11 03:23:31 +02:00
Aleric Inglewood
37c8ea54eb Add AIThreadID - Cleanup of apr_os_thread* related code.
Apart from just really cleaning things up and moving
everything into one class regarding thread IDs (ie,
is_main_thread(), comparing ID's etc), this also
fixes an obscure bug where LL was casting thread ID's
to U32 and then compared those to find out if it
the same thread. It's theoretically possible that
such fails on a 64bit OS.

By generalizing the interface, I adopted the use
of a thread-local cache for the current thread ID
as used by LLMutex et al, so now all code benefits
from that. The idea was even extended to now also
be used for is_main_thread() tests and even resetting
a thread ID to the ID of the current thread.
2012-08-09 06:30:31 +02:00
Aleric Inglewood
2fbf6b732e Fix undefined symbols linker error on linux / relwithdebinfo.
See http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Interface.html
With this patch, the #pragma will also be used with icc and clang,
I didn't test this.
2012-08-07 05:18:24 +02: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
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
0bee4a922f Make sure that sRunning <= number of threads with status RUNNING. 2012-06-27 04:27:08 +02:00
Aleric Inglewood
058720824d Fixup of LLAtomic and LLThreadSafeRefCount 2012-06-27 04:27:07 +02: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
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
Siana Gearz
697dd7e929 Preparing to add mesh upload. 2011-12-03 03:43:23 +01:00
Shyotl
587a687ac6 LLThread updated. 2011-09-20 22:10:12 -05:00
Shyotl
244e30297f AIAPRPool, AIAPRRootPool, AIVolatileAPRPool, AIThreadLocalData etc, were rebranded by LL. Merging change to clean up diffs. 2011-09-20 22:08:48 -05:00
Aleric Inglewood
3d1863c1b5 Make sure we assign name before mStatus 2011-08-07 18:47:01 +02:00
Siana Gearz
82fc160abe Look and criticize, Aleric 2011-08-02 02:16:31 +02:00
Aleric Inglewood
ef6737d0cd Shorten the time between freeing the lock and setting mStatus to STOPPED. 2011-08-02 00:05:14 +02: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
62d0be964d Updated LLThread and LLMutex[Base] to prevent nested mutex locks in same thread from hardlocking. 2011-07-31 01:51:43 -05:00
Aleric Inglewood
474acdbff9 Add support for libcwd.
This patch has no influence if you don't have libcwd installed.
Note that libcwd (http://libcwd.sourceforge.net/) is only
available for linux.

A default compile of libcwd does memory allocation tracking,
which is too slow for everyday usage of the viewer (usable,
but notably slower) and we don't need that. Configure your
libcwd as follows:

./configure --prefix=/sl/usr --disable-alloc --enable-optimize

Or whatever prefix you prefer (add --enable-maintainer-mode
if you're compiling it from the SVN repository), add
--disable-nonthreading to compile twice as fast.

If you have it installed you can activate it's use by setting a
few environment variables:

CXXFLAGS="$(pkg-config --cflags libcwd_r)"
LDFLAGS="$(pkg-config --libs libcwd_r) -lpthread"

and then reconfiguring the viewer.

The -lpthread is needed when using ld.gold, however, if you
leave it out you might get an LDFLAGS that ends on trailing
whitespaces, which doesn't work for some reason.

Also, if you installed it in a non-standard place (/sl/usr
above) then you need this to run the viewer (and tests):

export LD_LIBRARY_PATH="/sl/usr/lib"
2011-05-08 17:08:48 +02: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
Hazim Gazov
7a86d01598 Imported existing code 2010-04-02 02:48:44 -03:00