Age | Commit message (Collapse) | Author |
|
LLProxy support, HttpOptions starting to work, HTTP resource waiting fixed.
Non-LLThread-based threads need to do some registration or LLMutex locks taken out in these
threads will not work as expected (SH-3154). We'll get a better solution later, this fixes
some things for now. Tracing of operations now supported. Global and per-request (via
HttpOptions) tracing levels of [0..3]. The 2 and 3 levels use libcurl's VERBOSE mode
combined with CURLOPT_DEBUGFUNCTION to stream high levels of detail into the log. *Very*
laggy but useful. Simple GET request supported (no Range: header). Really just a
degenrate case of a ranged get but supplied an API anyway. Global option to use the
LLProxy interface to setup CURL handles for either socks5 or http proxy usage. This
isn't really the most encapsulated way to do this but a better solution will have to
come later. The wantHeaders and tracing options are now supported in HttpOptions giving
per-request controls. Big refactoring of the HTTP resource waiter in lltexturefetch.
What I was doing before wasn't correct. Instead, I'm implementing the resource wait
after the Semaphore model (though not using system semaphores). So instead of having
a sequence like: SEND_HTTP_REQ -> WAIT_HTTP_RESOURCE -> SEND_HTTP_REQ, we now
do WAIT_HTTP_RESOURCE -> WAIT_HTTP_RESOURCE2 (actual wait) -> SEND_HTTP_REQ. Works
well but the prioritized filling of the corehttp library needs some performance
work later.
|
|
Beware of bad documentation. operator--(int) does not return what
the header claimed it did.
|
|
|
|
boost::thread and the easiest path to that was to go with the 1.48 Boost release
in the 3P tree (eliminating a fork for a modified 1.45 packaging). One unit test,
the most important one, is failing in test_httprequest but that can be attended
to later. This test issues a GET to http://localhost:2/ and that is hitting the
wire but the libcurl plumbing isn't delivering the failure, only the eventual
timeout. An unexpected change in behavior.
|
|
|
|
|
|
|
|
and LLBufferArray::copyIntoBuffers
|
|
|
|
|
|
|
|
|
|
|
|
handling to saving inventory cache.
|
|
|
|
|
|
|
|
Backed out changeset: 4f3024e9d629
|
|
|
|
|
|
co-authored with Zi Ree
|
|
|
|
window and in scroll list widget in general.
- Added a customizable date format string to be used for scroll list cell of "date" type.
- The date localization does not change the value of a scroll list cell changing only its string representation.
- Added using localized week days and month names from strings.xml for all locales not only Ja and Pl as it was before.
- Changed the date format in Item Profile window (French locale) as noted in the issue description.
- For this fix the French locale still needs the localization of the following strings in strings.xml:
<string name="dateTimeWeekdaysNames">
<string name="dateTimeWeekdaysShortNames">
<string name="dateTimeMonthNames">
<string name="dateTimeMonthShortNames">
<string name="dateTimeDayFormat">
<string name="dateTimeAM">
<string name="dateTimePM">
|
|
SH-2738: Texture fetching freezes due to LLcurl
SH-2777: viewer crashed on logout in LLCurl::Easy::releaseEasyHandle
|
|
SH-2738: Texture fetching freezes due to LLcurl
SH-2777: viewer crashed on logout in LLCurl::Easy::releaseEasyHandle
|
|
comparison and formatting
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Per Monty's code review, it's dubious practice to have a class in which
certain members are sometimes visible, other times not. If these were virtual
methods, or non-static data members, the error would be obvious -- but even
with static data members and non-virtual methods, it looks like an ODR
violation. Extract conditional methods as free functions, as in changeset
07cd70e75473.
|
|
|
|
occlusion queries from previous frame are still pending and perform texture decode work.
|
|
Changeset 07cd70e75473 moved LLSD::outstandingCount() and allocationCount() to
free functions so we could turn their visibility on/off via LLSD_DEBUG_INFO.
But on some platforms, without proper LL_COMMON_API declarations visible when
we compile llsd.cpp, those free functions lack proper linkage directives.
Declare LLSD_DEBUG_INFO in llsd.cpp so that when the llcommon library is
built, the free functions get proper linkage -- independent of compilations of
LLSD consumers.
|
|
|
|
|
|
Free functions can be unconditionally compiled into the .o file, but
conditionally hidden in the header file. Static class methods don't have that
flexibility: without a declaration in the header file, you can't compile a
function definition in the .cpp file. That makes it awkward to use the same
llcommon build for production and for unit tests.
Why make the function declarations conditional at all? These are debugging
functions. They break the abstraction, they peek under the covers. Production
code should not use them. Making them conditional on an #ifdef symbol in the
unit-test source file means the compiler would reject any use by production
code. Put differently, it allows us to assert with confidence that only unit
tests do use them.
Put new free functions in (lowercase) llsd namespace so as not to clutter
global namespace.
Tweak the one known consumer (llsd_new_tut.cpp) accordingly.
|
|
|
|
|
|
|
|
|
|
https://bitbucket.org/VirLinden/viewer-development-shining-fixes
|
|
|
|
This establishes that there are no viewer-side unit tests relying on these
methods. The point is to try to clean up the LLSD public API. In the same
vein, remove from LLSD public API a diagnostic method which is nothing more
than an implementation detail for the corresponding LLSD::Impl method. The
same effect can be achieved by making LLSD::Impl a friend of LLSD, moving the
method with the messy signature (classic-C arrays!) into LLSD::Impl itself.
|
|
|
|
per Monty code review
|
|
My tollerance is at an end. :-P
|