summaryrefslogtreecommitdiff
path: root/indra/llcommon
AgeCommit message (Collapse)Author
2024-06-17Merge remote-tracking branch 'origin/develop' into brad/webrtc-voice-developBrad Linden
2024-06-17Store script's LuaListener in userdata in lua_State's Registry.Nat Goodspeed
Instead of deriving LuaListener from LLInstanceTracker with an int key, generating a unique int key and storing that key in the Registry, use new lua_emplace<LuaState>() to store the LuaListener directly in a Lua userdata object in the Lua Registry. Because lua_emplace<T>() uses LL.atexit() to guarantee that ~LuaState will destroy the T object, we no longer need ~LuaState() to make a special call specifically to destroy the LuaListener, if any. So we no longer need LuaState::getListener() separate from obtainListener(). Since LuaListener is no longer an LLInstanceTracker subclass, make LuaState::obtainListener() return LuaListener& rather than LuaListener::ptr_t.
2024-06-14Introduce LL.atexit(), internal lua_emplace<T>(), lua_toclass<T>().Nat Goodspeed
Publish new LL.atexit() function that accepts a Lua function (or C++ closure) and saves it (in Registry["atexit"] table) to call later. Make ~LuaState() walk the Registry["atexit"] table, if it exists, calling each function appended to that table. (Consider using that mechanism to clean up a LuaListener, if one was instantiated. Possibly also use for p.s. leap.run()? But that's run after every expr() call, instead of only at ~LuaState() time. Pragmatically, though, the distinction only matters for a LUA Debug Console LUA string with "clean lua_State" unchecked.) For use by future lua_function() entry points, lua_emplace<T>(ctor args...) pushes a Lua userdata object containing a newly-constructed T instance -- actually a std::optional<T> to avoid double destruction. lua_emplace<T>() is specifically intended to be usable even for T with a nontrivial destructor: it gives the userdata a metatable with a __gc function that destroys the contained T instance when the userdata is garbage collected. But since garbage collection doesn't guarantee to clean up global variables with __gc methods, lua_emplace<T>() also uses LL.atexit() to ensure that ~T() will run when the LuaState is destroyed. The companion to lua_emplace<T>() is lua_toclass<T>(), which returns a non-nullptr T* if the referenced index is in fact a userdata created by lua_emplace<T>() for the same T, that has not yet been destroyed. This lets C++ code access a T previously embedded in Lua userdata.
2024-06-14Fix for warnings/errors after Visual Studio update (#1775)Dave Parks
2024-06-13Merge branch 'develop' of github.com:secondlife/viewer into roxie/webrtc-voiceRoxie Linden
2024-06-12Add LL_DEBUGS("LLCoros") start/end messages.Nat Goodspeed
We have log messages when a coroutine terminates abnormally, but we don't report either when it starts or when it terminates normally. Address that.
2024-06-12LuaState::expr() has log messages for ending, add for starting.Nat Goodspeed
It's helpful to see when expr() is actually going to start running a particular Lua chunk. We already report not only when it's done, but also if/when we start and finish a p.s. fiber.run() call.
2024-06-12Fix whitespace pre-commit hook failuresBrad Linden
2024-06-12Extract TempSet from llcallbacklist.cpp into its own tempset.h.Nat Goodspeed
2024-06-11Merge branch 'main' of github.com:secondlife/viewer into roxie/webrtc-voiceRoxie Linden
2024-06-11Merge branch 'main' of github.com:secondlife/viewer into lua-bradfixNat Goodspeed
to pick up Featurettes promotion + Brad's GitHub Windows build workaround.
2024-06-10Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into ↵Brad Linden
project/gltf_development
2024-06-11Re-enable compiler warnings C4127, C4512 & C4706Ansariel
Disable particular CRT and WinSock API warnings for functions Microsoft considers unsafe/deprecated
2024-06-10Merge release/materials_featurette to main on promotion of secondlife/viewer ↵Nat Goodspeed
#648: Release/materials featurette
2024-06-10Post-merge - trim trailing whitespaceAndrey Lihatskiy
2024-06-10Fix incorrect use of VX/VY/VZ/VW indices when color components are accessedAnsariel
2024-06-10Re-enable compiler warnings C4018, C4100, C4231 and C4506Ansariel
2024-06-09Merge pull request #1613 from Ansariel/DRTVWR-600-maint-AAndrey Lihatskiy
Fix/re-enable MSVC compiler warnings
2024-06-07Fix another merge glitchNat Goodspeed
2024-06-07Tidy up merge from main.Nat Goodspeed
2024-06-07Merge branch 'main' of secondlife/viewer into release/luau-scriptingNat Goodspeed
2024-06-06Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into ↵Brad Linden
project/gltf_development
2024-06-06Merge branch 'main' into DRTVWR-600-maint-AAndrey Lihatskiy
# Conflicts: # indra/cmake/Copy3rdPartyLibs.cmake
2024-06-05Attempt to fix intermittent failuresin threadsafeschedule_test (#1623)Brad Linden
2024-06-05Ignore SIGHUP from SLPlugin processes. (#1627)Brad Linden
Under rosetta2, terminating SLPlugin child processes that would normally send SIGCHILD seem to be now sending SIGHUP. we should not terminate the viewer in this case.
2024-06-05#1527 Improve performance on Apple silicon (#1632)Dave Parks
2024-06-05Make LLLeap iterate over child stdout while read data is pendingNat Goodspeed
instead of using mutual recursion to exhaust the read buffer.
2024-06-04Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into ↵Brad Linden
project/gltf_development
2024-06-03Fix a small typoNat Goodspeed
2024-06-03Allow consumer code to query or adjust the per-tick timeslice.Nat Goodspeed
2024-06-03Distinguish TimersListener callers by reply LLEventPump name.Nat Goodspeed
The reqid is only distinct within a particular calling script.
2024-06-01Re-enable a lot of compiler warnings for MSVC and address the C4267 ↵Ansariel
"possible loss of precision" warnings
2024-05-31Add timers.lua API module and test_timers.lua test program.Nat Goodspeed
Since timers presents a timers.Timer Lua class supporting queries and cancellation, make TimersListener::scheduleAfter() and scheduleEvery() respond immediately so the newly constructed Timer object has the reqid necessary to perform those subsequent operations. This requires that Lua invocations of these operations avoid calling the caller's callback with that initial response. Reinvent leap.generate() to return a Lua object supporting next() and done() methods. A plain Lua coroutine that (indirectly) calls fiber.wait() confuses the fiber scheduler, so avoid implementing generate() as a Lua coroutine. Add a bit more leap.lua diagnostic output.
2024-05-31Explain the name of the LL::WorkQueue::BackJack class.Nat Goodspeed
2024-05-30Fix a bunch of uninitialized variable warnings that showed up in Visual StudioAnsariel
2024-05-30Re-enable compiler warning C4800 (performance warning)Ansariel
2024-05-29Merge branch 'release/luau-scripting' into lua-timersNat Goodspeed
2024-05-29Make ~ThreadPool() join every thread before destroying its vector.Nat Goodspeed
Otherwise we fall into the trap of destroying a joinable std::thread, which calls std::terminate() and hence our crash-on-terminate() handler. The previous ~ThreadPool() logic only joined threads if the queue wasn't already closed, but evidently we can reach the destructor with the queue closed but the threads not yet joined. Fixes #1534.
2024-05-28Remove tinygltf dependency from LL::GLTF (#1541)Dave Parks
* #1535 Image loading/saving support in boost::json driven GLTF parser * #1536 GLB Support in boost::json drvien GLTF parser
2024-05-24Merge branch 'release/luau-scripting' into lua-timersNat Goodspeed
2024-05-24Nat's ideas from PR #1547Nat Goodspeed
2024-05-24Introduce LLWStringView to prevent unnecessary memory allocationsAnsariel
2024-05-23Merge remote-tracking branch 'origin/project/gltf_development' into ↵Brad Linden
brad/merge-maint-a-to-dev
2024-05-23Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into ↵Brad Linden
brad/merge-maint-a-to-dev
2024-05-23More vestigial whitespace fixesNat Goodspeed
2024-05-23Fix lingering trailing whitespace in llmainthreadtask.h.Nat Goodspeed
2024-05-23Fix lingering trailing whitespace in lleventfilter.cpp.Nat Goodspeed
2024-05-23Fix lingering trailing whitespace in lleventfilter.h.Nat Goodspeed
2024-05-23Fix test program termination crash.Nat Goodspeed
2024-05-22Fix line endlingsAnsariel