Commit graph

724 commits

Author SHA1 Message Date
Anthony Thibault
6c66f5a37b Fix for DependencyManager crash on shutdown on Mac
On Mac, it is possible to crash when shutting down, it is not clear if this is due to
shutting down the app on another thread during logout or something that can happen
during normal shutdown, because it is so difficult to reproduce.

However, from looking at the stack traces it is possible for a [NSApplication terminate:]
event to get processed while Appliction::aboutToQuit() is calling ScriptEngine::waitTillDoneRunning()
This causes AppKit to invoke the static destructors too early.  Which in turn, causes the
DependencyManager destructor to fire while there are still many dependencies running.
Unfortunatly, the order of destruction is not determinstic, causing them to get shutdown
in an incorrect order.

To workaround this, we delay the call to QCoreApplication::processEvents() as late as possible,
in the Application destructor. Theoretically, this will be a safe time for the static destructors
to be invoked, because it is after all of the DependencyManager's dependencies have been
manually destroyed.

However, this is only a speculative fix, because this is so difficult to reproduce.
2019-07-01 17:37:57 -07:00
David Rowe
b2b7a6ae99 Merge branch 'master' into DOC-79 2019-06-22 12:11:22 +12:00
sabrina-shanman
4fafa2135a Fix potential crash when ending script on main thread 2019-06-21 14:20:15 -07:00
David Rowe
0945bdaac7 Remainder of Entities methods' JSDoc 2019-06-20 15:11:01 +12:00
Anthony J. Thibault
e1534b34b4 Workaround crash in reportAdditionalMemoryCost other platforms 2019-06-04 08:56:07 -07:00
David Rowe
ca7ddece8b Add missing Script JSDoc 2019-05-21 10:32:12 +12:00
David Rowe
28dfac64ba Merge branch 'master' into M21460
# Conflicts:
#	libraries/image/src/image/Image.h
2019-04-05 17:50:46 +13:00
David Rowe
68f76851fd Updates per doc review 2019-04-05 17:10:52 +13:00
Ryan Huffman
cf3a9b1d48 Fix ScriptEngine not being destroyed on its own thread 2019-04-04 13:28:13 -07:00
David Rowe
9a1bb27034 AnimationCache, ModelCache, SoundCache, and TextureCache JSDoc 2019-03-26 13:58:43 +13:00
SamGondelman
300dd39abf fix script engine shutdown 2019-03-13 12:23:31 -07:00
SamGondelman
f2c248c0a2 disable href and entity script events when in edit mode 2019-03-04 17:10:20 -08:00
David Rowe
5428bb19dc Add "Avatar Script" JSDoc API classification 2019-02-12 11:49:49 +13:00
John Conklin II
45ec44423b
Merge pull request #14694 from danteruiz/delete-only-domain-entities
case 20595: case 20563: Do not delete local entities when switching domains.
2019-01-17 11:25:58 -08:00
Antonina Savinova
560c44a74a
Merge pull request #14697 from howard-stearns/more-log-purge
log purge
2019-01-15 16:19:03 -08:00
Dante Ruiz
e7d3844620 making pre review requests 2019-01-14 11:14:57 -08:00
Seth Alves
6ca9ab6fba avoid shutdown crash 2019-01-11 15:53:49 -08:00
Seth Alves
36040597ba rename variable for consistency 2019-01-11 15:53:49 -08:00
Seth Alves
6589db628a fix a couple shutdown crashes and a class of asan warning 2019-01-11 15:53:49 -08:00
Howard Stearns
62ed84aa19 more log purge 2019-01-11 12:34:44 -08:00
unknown
f8f13e974d property range audit - add range info via macros accessible via API, tweak min/max/steps in entityProperties 2019-01-02 11:12:10 -08:00
Clement
7723261cb9 Remove deferred script loading logic 2018-12-05 14:08:30 -08:00
Zach Fox
e0ca535853 CR round 2 2018-11-08 10:08:42 -08:00
Roxanne Skelly
cef7000a72 Case 19754 - Remove logging URLs and related file locations.
The goal is to strip out data that can be used by untoward users in
copying models, avatars, etc.
2018-11-06 16:24:32 -08:00
Sam Gondelman
5b6e7b2566
Merge branch 'master' into scriptvec3 2018-10-02 08:58:04 -07:00
Brad Hefta-Gaub
edd5db7768
Merge pull request #14042 from thoys/perf/create/getMultipleEntities
Speed up Entity List properties fetching by adding Entities.getMultipleEntities API
2018-10-01 16:16:48 -07:00
Seth Alves
f6e57f54b0 don't call enterEntity until script preload has finished 2018-09-21 10:26:55 -07:00
Thijs Wenker
06491ef12f API function for retrieving multiple entity properties with better performance 2018-09-20 19:34:00 +02:00
SamGondelman
c522d1bc93 merge with master 2018-09-14 00:57:13 -07:00
Clement
e6b4ccef16 Add lock around _entityScripts 2018-09-13 15:10:16 -07:00
David Back
3601ade8ba destroy thread from thread finished not scriptEngine destroyed 2018-09-07 18:36:36 -07:00
Sam Gondelman
6730635931
Merge branch 'master' into scriptvec3 2018-08-27 10:43:52 -07:00
SamGondelman
283c0c0311 s i m p l i f y 2018-08-23 11:47:56 -07:00
Stephen Birarda
01e8fd66a3 fix script engine(s) cleanup from ESS 2018-08-22 13:52:37 -07:00
Sam Gondelman
f0986a7f5a Merge branch 'master' into scriptvec3 2018-08-20 10:56:45 -07:00
Stephen Birarda
e686df6fb9
Merge pull request #13720 from Atlante45/feat/test-tool
Stack tester changes
2018-08-08 13:40:05 -04:00
Sam Gondelman
7772e8adf2
Merge branch 'master' into scriptvec3 2018-08-03 14:57:49 -07:00
Clement
9c89aa9f90 Make sure the stack test interface gets cleaned up 2018-08-01 13:29:07 -07:00
Thijs Wenker
74343c71d8 CR fixes 2018-07-31 22:29:53 +02:00
Clement
949c7f8c19 Add automated test tool scripting interface 2018-07-30 17:18:32 -07:00
Thijs Wenker
ba8d445444 fix require by queueing content requests 2018-07-28 00:25:16 +02:00
SamGondelman
5bbd5b9e52 vec2 conversion 2018-07-10 16:32:49 -07:00
Anthony J. Thibault
ac6fcf092c Fix memory corruption via lambdas that capture local variables by reference.
The lambdas in ScriptEngine::fetchModuleSource() were referencing local stack variables by reference.
This could lead to un-expected results including memory corruption.
To workaround this issue the QTimer and QEventLoop variables are allocated on the heap and held onto by a shared_ptr.
This shared_ptr is passed to the lambda.

This will not result in cycles and should result in the QTimer and QEventLoop being destroyed when the BatchLoader
object they are connected to is deleted.
2018-06-28 11:15:25 -07:00
Alexander Ivash
5897c9948d terminate thread if it didn't complete during MAX_SCRIPT_QUITTING_TIME 2018-06-06 03:52:22 +03:00
Gabriel Calero
bb73af7230 Show stats button only in debug mode. Add isDebugMode to Script public interface 2018-05-29 17:21:44 -03:00
David Rowe
e44e7ca35f Fix up Resource and resource cache APIs' JSDoc 2018-05-21 11:57:16 +12:00
Seth Alves
7466d08f1f more suppression of logging 2018-05-09 13:01:49 -07:00
Clement
da9fb9c751 Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
John Conklin II
7a5fce4315
Merge pull request #12991 from luiscuenca/avatarScript
Avatar Scripts
2018-05-02 12:23:13 -07:00
David Rowe
a1fc1c4810 Add JSDoc for Entity preload and unload signals 2018-05-01 21:55:14 +12:00