summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llthread.h3
-rw-r--r--indra/llmessage/llcurl.cpp6
-rwxr-xr-x[-rw-r--r--]indra/llmessage/llcurl.h2
-rw-r--r--indra/newview/llsecapi.h8
-rw-r--r--indra/newview/llsidetray.cpp1
-rw-r--r--indra/newview/skins/default/xui/en/floater_preferences_proxy.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml3
7 files changed, 21 insertions, 12 deletions
diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h
index c732e3bc77..b631b96252 100644
--- a/indra/llcommon/llthread.h
+++ b/indra/llcommon/llthread.h
@@ -195,7 +195,8 @@ public:
}
~LLMutex()
{
- llassert(!isLocked()); // better not be locked!
+ //this assertion erroneously triggers whenever an LLCondition is destroyed
+ //llassert(!isLocked()); // better not be locked!
apr_thread_mutex_destroy(mAPRMutexp);
mAPRMutexp = NULL;
}
diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp
index 14e169c6b1..280a8942a8 100644
--- a/indra/llmessage/llcurl.cpp
+++ b/indra/llmessage/llcurl.cpp
@@ -222,7 +222,7 @@ namespace boost
std::set<CURL*> LLCurl::Easy::sFreeHandles;
std::set<CURL*> LLCurl::Easy::sActiveHandles;
LLMutex* LLCurl::Easy::sHandleMutex = NULL;
-
+LLMutex* LLCurl::Easy::sMultiMutex = NULL;
//static
CURL* LLCurl::Easy::allocEasyHandle()
@@ -606,6 +606,7 @@ void LLCurl::Multi::run()
mPerformState = PERFORM_STATE_PERFORMING;
if (!mQuitting)
{
+ LLMutexLock lock(LLCurl::Easy::sMultiMutex);
doPerform();
}
}
@@ -1179,6 +1180,7 @@ void LLCurl::initClass(bool multi_threaded)
check_curl_code(code);
Easy::sHandleMutex = new LLMutex();
+ Easy::sMultiMutex = new LLMutex();
#if SAFE_SSL
S32 mutex_count = CRYPTO_num_locks();
@@ -1200,6 +1202,8 @@ void LLCurl::cleanupClass()
delete Easy::sHandleMutex;
Easy::sHandleMutex = NULL;
+ delete Easy::sMultiMutex;
+ Easy::sMultiMutex = NULL;
for (std::set<CURL*>::iterator iter = Easy::sFreeHandles.begin(); iter != Easy::sFreeHandles.end(); ++iter)
{
diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h
index 213b281e72..87de202717 100644..100755
--- a/indra/llmessage/llcurl.h
+++ b/indra/llmessage/llcurl.h
@@ -232,6 +232,7 @@ public:
private:
friend class LLCurl;
+ friend class LLCurl::Multi;
CURL* mCurlEasyHandle;
struct curl_slist* mHeaders;
@@ -251,6 +252,7 @@ private:
static std::set<CURL*> sFreeHandles;
static std::set<CURL*> sActiveHandles;
static LLMutex* sHandleMutex;
+ static LLMutex* sMultiMutex;
};
class LLCurl::Multi : public LLThread
diff --git a/indra/newview/llsecapi.h b/indra/newview/llsecapi.h
index 0935a0005b..db57848320 100644
--- a/indra/newview/llsecapi.h
+++ b/indra/newview/llsecapi.h
@@ -132,7 +132,7 @@ protected:
// LLCertificates are considered unmodifiable
// Certificates are pulled out of stores, or created via
// factory calls
-class LLCertificate : public LLRefCount
+class LLCertificate : public LLThreadSafeRefCount
{
LOG_CLASS(LLCertificate);
public:
@@ -170,7 +170,7 @@ public:
// base iterator implementation class, providing
// the functionality needed for the iterator class.
- class iterator_impl : public LLRefCount
+ class iterator_impl : public LLThreadSafeRefCount
{
public:
iterator_impl() {};
@@ -289,7 +289,7 @@ bool operator!=(const LLCertificateVector::iterator& _lhs, const LLCertificateVe
// * Persistence of credential information based on grid (for saving username/password)
// * Serialization to an OGP identifier/authenticator pair
//
-class LLCredential : public LLRefCount
+class LLCredential : public LLThreadSafeRefCount
{
public:
@@ -424,7 +424,7 @@ protected:
// LLSecAPIHandler Class
// Interface handler class for the various security storage handlers.
-class LLSecAPIHandler : public LLRefCount
+class LLSecAPIHandler : public LLThreadSafeRefCount
{
public:
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index f53b08a4bc..0d28b3c042 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -685,7 +685,6 @@ LLSideTrayTab* LLSideTray::getTab(const std::string& name)
bool LLSideTray::isTabAttached(const std::string& name)
{
LLSideTrayTab* tab = getTab(name);
- llassert(tab);
if (!tab) return false;
return std::find(mTabs.begin(), mTabs.end(), tab) != mTabs.end();
diff --git a/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml
index 449731ab89..93bfe53aae 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences_proxy.xml
@@ -29,7 +29,7 @@
height="10"
left_delta="23"
layout="topleft"
- name="Proxy location"
+ name="http_proxy_label"
top_pad="10"
width="300">
HTTP Proxy:
@@ -81,7 +81,7 @@
height="10"
layout="topleft"
left_delta="23"
- name="Proxy location"
+ name="socks5_proxy_label"
top_pad="10"
width="300">
SOCKS 5 Proxy:
@@ -125,7 +125,7 @@
height="10"
layout="topleft"
left="40"
- name="Proxy location"
+ name="socks_auth_label"
top_pad="15"
width="300">
SOCKS Authentication:
@@ -163,6 +163,7 @@
height="10"
layout="topleft"
left_delta="20"
+ name="socks5_username_label"
top_delta="50"
width="200">
Username:
@@ -174,6 +175,7 @@
height="10"
left_pad="15"
layout="topleft"
+ name="socks5_password_label"
width="200">
Password:
</text>
@@ -207,7 +209,7 @@
height="10"
layout="topleft"
left="25"
- name="Proxy location"
+ name="other_proxy_label"
top_pad="18"
width="300">
Other HTTP traffic proxy:
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 9749b6fdd4..51ffec4727 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -146,7 +146,8 @@
border.highlight_light_color="FocusColor"
border.highlight_dark_color="FocusColor"
border.shadow_light_color="FocusColor"
- border.shadow_dark_color="FocusColor"/>
+ border.shadow_dark_color="FocusColor"
+ mouse_wheel_opaque="true" />
</search_combo_box>
</panel>
<favorites_bar