diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index eef689b8da..0aec6ef564 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -780,11 +780,13 @@ static inline void filterNodesInLayoutAtIndexesWithIntersectingNodes( - (BOOL)usesImplicitHierarchyManagement { + ASDN::MutexLocker l(_propertyLock); return _usesImplicitHierarchyManagement ?: [[self class] usesImplicitHierarchyManagement]; } - (void)setUsesImplicitHierarchyManagement:(BOOL)value { + ASDN::MutexLocker l(_propertyLock); _usesImplicitHierarchyManagement = value; } @@ -1718,7 +1720,7 @@ static NSInteger incrementIfFound(NSInteger i) { [self _tearDownPlaceholderLayer]; }; - if (_placeholderFadeDuration > 0.0) { + if (_placeholderFadeDuration > 0.0 && ASInterfaceStateIncludesVisible(self.interfaceState)) { [CATransaction begin]; [CATransaction setCompletionBlock:cleanupBlock]; [CATransaction setAnimationDuration:_placeholderFadeDuration];