overte/libraries/shared/src
Anthony Thibault 442a679108 Make DepenencyManager thread-safe again
Before this PR, there were no locks around the two internal QHash data structures.
Races are rare, due to the fact that the DependencyManager is initialized on the main thread on startup and the fact that a static QWeakPointer was used as an internal cache.
However, there have been reported crashes where the render thread uses DependencyManager::isSet() perhaps while the main thread is adding a late dependency.
DependencyManager::isSet() did not use the static QWeakPointer cache and was more prone to race conditions.

To avoid this and perhaps other data races, mutexes now guard both of the internal QHash data structures.
Also, as an optimization, the most frequent call to DependencyManager::isSet was removed (Profile.cpp).
2019-05-10 14:12:10 -07:00
..
shared Camera JSDoc polish 2019-04-04 18:03:14 +13:00
AABox.cpp new improved polylines 2018-12-14 14:15:56 -08:00
AABox.h fix aabox operator+= 2018-09-04 16:25:47 -07:00
AACube.cpp faster aabox ray intersection and pre-computed inverse direction 2018-08-27 15:40:33 -07:00
AACube.h faster aabox ray intersection and pre-computed inverse direction 2018-08-27 15:40:33 -07:00
AngleUtil.h
ApplicationVersion.cpp check for update for dev-builds, handle semantic version 2018-06-08 17:20:57 -07:00
ApplicationVersion.h check for update for dev-builds, handle semantic version 2018-06-08 17:20:57 -07:00
AtRestDetector.cpp Disable user hand controllers if they are too far away or not moving. 2018-10-16 17:24:47 -07:00
AtRestDetector.h Disable user hand controllers if they are too far away or not moving. 2018-10-16 17:24:47 -07:00
AudioHelpers.h More robust approximation of distance attenuation at extreme settings. 2019-01-16 11:10:38 -08:00
AvatarConstants.h Merge pull request #15365 from hyperlogic/bug-fix/better-camera-in-head-check 2019-04-16 15:07:46 -07:00
BaseScriptEngine.cpp CR feedback and code cleanup 2018-01-23 03:12:26 -05:00
BaseScriptEngine.h
BillboardMode.cpp renderLayer 2019-01-07 15:43:35 -08:00
BillboardMode.h Miscellaneous JSDoc fixes 2019-03-09 19:22:07 +13:00
BitVectorHelpers.h remove dupe const 2018-02-07 16:48:31 -08:00
BoxBase.cpp parabola/polyvox, fixing some bugs 2018-07-24 10:08:35 -07:00
BoxBase.h parabola/polyvox, fixing some bugs 2018-07-24 10:08:35 -07:00
BRDF.cpp Fixed other compilation errors / warnings 2019-04-05 11:32:00 +02:00
BRDF.h Switched to split sum model for ambient (as Unreal) 2019-04-04 16:10:33 +02:00
BufferParser.h cleanup 2018-07-12 17:59:57 -07:00
ByteCountCoding.h
ColorUtils.cpp
ColorUtils.h s i m p l i f y 2018-08-23 11:47:56 -07:00
ComponentMode.h
CPUDetect.h
CPUIdent.cpp
CPUIdent.h
CrashHelpers.cpp add crash::doAssert() for debug purposes 2019-02-05 09:00:48 -08:00
CrashHelpers.h add crash::doAssert() for debug purposes 2019-02-05 09:00:48 -08:00
CubeProjectedPolygon.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
CubeProjectedPolygon.h
CubicHermiteSpline.h added protected function to cubic hermite spline 2019-02-21 13:32:28 -08:00
Debug.h
DebugDraw.cpp Refactor and optimizations 2019-01-15 18:07:50 -07:00
DebugDraw.h Add "Avatar Script" JSDoc API classification 2019-02-12 11:49:49 +13:00
DependencyManager.cpp Make DepenencyManager thread-safe again 2019-05-10 14:12:10 -07:00
DependencyManager.h Make DepenencyManager thread-safe again 2019-05-10 14:12:10 -07:00
DisableDeferred.h try to fix text rendering on amd with transparency 2019-03-07 16:23:12 -08:00
DualQuaternion.cpp Renamed imag component to dual, using the correct nomenclature 2018-01-08 18:21:23 -08:00
DualQuaternion.h Switch between dualQuats and matrix skinning based on model entity scale factor. 2018-02-22 18:35:16 -08:00
Extents.cpp
Extents.h
FaceshiftConstants.cpp spaces 2018-06-29 14:38:43 -07:00
FaceshiftConstants.h spaces 2018-06-29 14:38:43 -07:00
Finally.h
FloodFill.h
GenericQueueThread.h
GenericThread.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
GenericThread.h make sure backup handlers end up on the correct thread 2018-02-15 15:39:25 -08:00
GeometryUtil.cpp model emitters! 2019-03-20 21:25:14 -07:00
GeometryUtil.h Merge branch 'master' into M21989 2019-04-11 10:37:34 +12:00
GizmoType.cpp ring gizmo entities 2019-01-23 17:46:04 -08:00
GizmoType.h ring gizmo entities 2019-01-23 17:46:04 -08:00
GLMHelpers.cpp Fix non self-sufficient headers. 2018-12-07 15:26:49 -08:00
GLMHelpers.h Fix tabs 2019-02-09 12:16:26 -08:00
GPUIdent.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
GPUIdent.h Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
Grab.cpp grab js api; send grab information through trait system 2019-01-03 08:17:52 -08:00
Grab.h deactivate grab action when grab is released 2019-01-30 14:43:11 -08:00
Gzip.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
Gzip.h
HashKey.cpp
HashKey.h clean HashKey API, reduce dependency tree 2019-02-12 15:37:09 -08:00
HifiConfigVariantMap.cpp Remove 2 year old migration code 2018-07-30 17:18:32 -07:00
HifiConfigVariantMap.h Remove 2 year old migration code 2018-07-30 17:18:32 -07:00
Interpolate.cpp
Interpolate.h
JointData.h Updated protocol version and fixed bugs 2019-01-17 15:19:54 -08:00
LogHandler.cpp don't flushRepeatedMessages() in LogHandler dtor 2019-02-05 17:14:25 -08:00
LogHandler.h Handle one-time messages outside LogHandler class 2018-04-04 15:44:47 -07:00
LogUtils.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
LogUtils.h
MaterialMappingMode.cpp renderLayer 2019-01-07 15:43:35 -08:00
MaterialMappingMode.h remove fresnel, add unlit, fix overlays, cleanup 2018-02-14 17:02:07 -08:00
MathUtils.h Some work to try to find the odd resolution bug 2018-09-21 17:14:39 +02:00
MatrixStack.h
MovingMinMaxAvg.h
MovingPercentile.cpp
MovingPercentile.h
NestableTransformNode.cpp Make template specialization of BaseNestableTransformNode explicit 2018-09-07 08:49:44 -07:00
NestableTransformNode.h fix lasers scale issue 2019-03-12 14:26:59 -07:00
NumericalConstants.h filter time-cost drivers for region regulation 2018-08-29 11:17:59 -07:00
OctalCode.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
OctalCode.h Remove more dead octree code 2018-04-17 18:21:51 -07:00
OwningBuffer.h Add uncompressed KTX files to baked texture output 2018-06-08 11:39:47 -07:00
Packed.h
PathUtils.cpp Add error reporting + Make temp dir erase safer 2019-04-23 14:54:12 -07:00
PathUtils.h Add error reporting + Make temp dir erase safer 2019-04-23 14:54:12 -07:00
PerfStat.cpp Fix memory corruption in PerformanceTimer when Stats are active 2018-08-08 09:53:26 -07:00
PerfStat.h Fix memory corruption in PerformanceTimer when Stats are active 2018-08-08 09:53:26 -07:00
PhysicsCollisionGroups.h Other avatar detailed collisions on motion state 2019-01-08 14:09:13 -07:00
PhysicsHelpers.cpp Other avatar detailed collisions on motion state 2019-01-08 14:09:13 -07:00
PhysicsHelpers.h double bits in collision groups 2018-05-24 11:28:52 -07:00
PickFilter.h more overlay wip 2019-01-25 11:10:11 -08:00
PIDController.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
PIDController.h
Plane.cpp
Plane.h
PointerEvent.cpp more overlay wip 2019-01-25 11:10:11 -08:00
PointerEvent.h
PortableHighResolutionClock.cpp
PortableHighResolutionClock.h
Preferences.cpp
Preferences.h make CR changes 2018-12-12 13:29:32 -08:00
PrimitiveMode.cpp working on primitiveMode and groupCulled 2019-01-08 10:02:03 -08:00
PrimitiveMode.h working on primitiveMode and groupCulled 2019-01-08 10:02:03 -08:00
PrioritySortUtil.h Merge branch 'master' into avatar-mixer-improvements 2018-10-23 15:56:56 -07:00
Profile.cpp Make DepenencyManager thread-safe again 2019-05-10 14:12:10 -07:00
Profile.h Support explicit timestamps in tracing, conditional event output based on duration 2019-03-26 13:50:46 -07:00
PropertyFlags.h
PulseMode.cpp add pulse group properties to shapes, particles, text, web, image, and grid 2019-01-16 13:34:10 -08:00
PulseMode.h add pulse group properties to shapes, particles, text, web, image, and grid 2019-01-16 13:34:10 -08:00
QVariantGLM.cpp xcolor/rgbcolor conversion 2018-07-11 18:06:06 -07:00
QVariantGLM.h xcolor/rgbcolor conversion 2018-07-11 18:06:06 -07:00
Radix2InplaceSort.h
Radix2IntegerScanner.h
RandomAndNoise.h Switched to split sum model for ambient (as Unreal) 2019-04-04 16:10:33 +02:00
RegisteredMetaTypes.cpp Merge remote-tracking branch 'upstream/master' into stencil2 2019-04-22 13:28:30 -07:00
RegisteredMetaTypes.h Regularize deprecation notices 2019-04-25 20:55:30 +12:00
RenderLayer.cpp renderLayer 2019-01-07 15:43:35 -08:00
RenderLayer.h renderLayer 2019-01-07 15:43:35 -08:00
ResourceRequestObserver.cpp Add ResourceRequestObserver JSDoc 2019-04-10 12:09:48 +12:00
ResourceRequestObserver.h Add ResourceRequestObserver JSDoc 2019-04-10 12:09:48 +12:00
RingBufferHistory.h
RunningMarker.cpp
RunningMarker.h
ScriptValueUtils.cpp
ScriptValueUtils.h
SettingHandle.cpp
SettingHandle.h
SettingHelpers.cpp
SettingHelpers.h
SettingInterface.cpp Add comments to startup processes 2018-02-26 16:25:41 -08:00
SettingInterface.h
SettingManager.cpp Make Settings thread safe 2018-09-21 15:46:35 -07:00
SettingManager.h Make Settings thread safe 2018-09-21 15:46:35 -07:00
ShapeInfo.cpp clean HashKey API, reduce dependency tree 2019-02-12 15:37:09 -08:00
ShapeInfo.h clean HashKey API, reduce dependency tree 2019-02-12 15:37:09 -08:00
SharedLogging.cpp
SharedLogging.h
SharedUtil.cpp Merge branch 'master' into scriptvec3 2018-10-02 08:58:04 -07:00
SharedUtil.h Fix Agent crash on shutdown 2018-11-28 18:40:52 -08:00
ShutdownEventListener.cpp
ShutdownEventListener.h
SimpleAverage.h
SimpleMovingAverage.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
SimpleMovingAverage.h
SpatiallyNestable.cpp fix cauterization of entities that are children of MyAvatar's head 2019-04-08 19:48:11 -07:00
SpatiallyNestable.h fix shapes app 2019-03-06 18:18:39 -08:00
SpatialParentFinder.h faster and const EntityTree::findByID() 2018-02-13 11:25:34 -08:00
StatTracker.cpp
StatTracker.h
StDev.cpp Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
StDev.h
StencilMaskMode.h wip redo stencil work 2019-04-11 13:22:51 -07:00
StreamHelpers.h
StreamUtils.cpp s i m p l i f y 2018-08-23 11:47:56 -07:00
StreamUtils.h s i m p l i f y 2018-08-23 11:47:56 -07:00
TBBHelpers.h Fixed compilation errors 2019-04-05 10:22:57 +02:00
ThreadHelpers.cpp
ThreadHelpers.h
ThreadSafeValueCache.h First version of faux joint optimizations 2019-04-22 11:02:13 -07:00
TimeWeightedAvg.h
Trace.cpp Support explicit timestamps in tracing, conditional event output based on duration 2019-03-26 13:50:46 -07:00
Trace.h Support explicit timestamps in tracing, conditional event output based on duration 2019-03-26 13:50:46 -07:00
Transform.cpp better fix for model scale floor, remove abs 2018-01-04 17:49:39 -08:00
Transform.h Optimizations and cleanup 2018-01-04 16:15:44 -08:00
TransformNode.h Fix new Mac warnings 2018-10-09 12:11:55 -07:00
TriangleSet.cpp fix several uninitialized reads 2018-09-26 09:33:12 -07:00
TriangleSet.h faster aabox ray intersection and pre-computed inverse direction 2018-08-27 15:40:33 -07:00
TryLocker.h
UUID.cpp
UUID.h Local node IDs now working correctly 2018-03-27 18:18:14 -07:00
UUIDHasher.h
VariantMapToScriptValue.cpp comment out warning 2019-04-23 08:46:54 -07:00
VariantMapToScriptValue.h
ViewFrustum.cpp Small optimization by using squared distance and not distance in depth sort 2018-08-06 08:20:21 +02:00
ViewFrustum.h Small optimization by using squared distance and not distance in depth sort 2018-08-06 08:20:21 +02:00
WebInputMode.cpp setup qml surface contexts 2019-01-14 09:26:57 -08:00
WebInputMode.h working on ignorePickIntersection and web entities 2019-01-09 12:03:35 -08:00
windowshacks.h