21 Commits

Author SHA1 Message Date
John Engelhart
ea64d7d09b Pr/fix unit tests memory leaks (#1795)
* Fix some concurrency problems detected by Xcode 8's new Thread Sanitizer.

Some of these changes are arguably just to silence the warnings from Thread Sanitizer.

* Fix several memory leaks in the unit tests.

A number of the unit test source files are compield with `-fno-objc-arc`.  This was clearly overlooked when writing several of the unit tests.

Fixed by (mostly) switching to use of `-autorelease` for the problem code.

NOTE: This commit doesn't fix all the memory leaks found.  There's still at least one leak in `-[ASDisplayNodeTests testSetNeedsDataFetchImmediateState]`, and several leaks in `ASBasicImageDownloader.mm`.  I wasn't able to find a trivial cause to these, unfortunately.
2016-06-22 16:56:53 -07:00
Hannah Troisi
c857e809f4 Clean up header comments (for consistent Facebook licensing info) (#1741)
[Licensing] Clean up header comments (for consistent Facebook licensing info)
2016-06-11 23:31:39 -07:00
Levi McCallum
905f3a23b0 Create a new hash table on commit to prevent copy
Resolves #1342
2016-05-10 15:00:31 -07:00
Eric Jensen
527397ba7e Replace id with instancetype in initializers 2016-04-13 11:20:05 -07:00
appleguy
d9ef0922d8 Merge pull request #1354 from ejensen/cleanup
[Refactoring] Objective-C 2.0 / Modern syntax for arrays, dictionaries, numbers; logic simplification
2016-03-17 01:06:33 -07:00
Eric Jensen
33fda7ab49 - Use modern Objective-C syntax.
-  Simplify comparisons.
-  Remove dead stores.
2016-03-15 22:34:29 -07:00
Eric Jensen
ddd5ff1f75 Correct spelling errors 2016-03-15 21:56:51 -07:00
Eric Jensen
86ccd33a84 Correct a few documentation comments for method parameters 2016-03-08 11:56:58 -08:00
Scott Goodson
39f5686982 Revert "[_ASAsyncTransaction] Reduce locking overhead by removing C++ stack-allocated MutexLocker objects."
Locking was not quite right here in a certain case where the transaction leaves after other references
were removed.  Will restore this optimization in the future with more time to analyze.

This reverts commit ee524f497d0692a2c0c6ea39bd3840183a00f3ed.
2016-03-07 14:46:06 -08:00
Scott Goodson
ee524f497d [_ASAsyncTransaction] Reduce locking overhead by removing C++ stack-allocated MutexLocker objects.
Support assertion to log specific return value for pthread_mutex_destroy failures.
2016-03-02 14:49:02 -08:00
Matej Knopp
da5f7eccd9 [_ASAsyncTransaction] make priority a NSInteger with default to 0
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-27 00:37:27 +01:00
Matej Knopp
0a45bd9596 [_ASAsyncTransaction] implement operation priority
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-26 15:31:40 +01:00
Matej Knopp
75abf07c6f [_ASAsyncTransaction] tweak number of threads
Thread count is now 2 * activeProcessorCount, however during tracking it is decreased by 1

Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-26 15:18:16 +01:00
Matej Knopp
f906951b69 [_ASAsyncTransaction] limit number of spawned threads
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-21 18:38:26 +01:00
Matej Knopp
057ce3dc35 [_ASAsyncTransaction] c++
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-21 12:47:29 +01:00
Scott Goodson
af74f4a1c2 Fix the AsyncDisplayKit tests under Xcode 7! Workaround for unfixed Apple bug with @dynamic on CALayer. 2015-12-25 14:01:18 -08:00
Scott Goodson
a58844379c Implementation of Synchronous Concurrency features for AsyncDisplayKit 2.0
This provides internal features on _ASAsyncTransaction and ASDisplayNode to facilitate
implementing public API that allows clients to choose if they would prefer to block
on the completion of unfinished rendering, rather than allow a placeholder state to
become visible.

The internal features are:
-[_ASAsyncTransaction waitUntilComplete]
-[ASDisplayNode recursivelyEnsureDisplay]

Also provided are two such implementations:
-[ASCellNode setNeverShowPlaceholders:], which integrates with both Tables and Collections
-[ASViewController setNeverShowPlaceholders:], which should work with Nav and Tab controllers.

Lastly, on ASDisplayNode, a new property .shouldBypassEnsureDisplay allows individual node types
to exempt themselves from blocking the main thread on their display.

By implementing the feature at the ASCellNode level rather than ASTableView & ASCollectionView,
developers can retain fine-grained control on display characteristics.  For example, certain
cell types may be appropriate to display to the user with placeholders, whereas others may not.

Follow-up work will include unit tests, revisiting names, and the header locations of definitions.
2015-09-27 19:14:36 -07:00
Ryan Nystrom
ad474fce8e Make project imports consistent 2015-02-23 14:55:15 -08:00
René Cacheaux
7ea0963b65 Wraps transaction async dispatches with autorelease pools. 2014-10-07 15:25:04 -05:00
Andrew Toulouse
a35c109a08 Unify boolean flag naming confention, getter spacing, and property attribute naming
Summary:
* Fixes #3
* Ordering: atomicity, then [optional] readonly, then value semantics (retain/copy/assign)
* Removed redundant `readwrite`
* No spaces between "getter = name" ("getter=name" instead)
* Property method overrides renamed as well
* self.isBlah, while technically not entirely correct, still resolves to [self blah], so left alone (@kimon had advice on this sort of naming issue last summer), and largely inconsequential

Test Plan:
* Compile and run
2014-07-17 13:18:47 -07:00
Nadine Salter
15565873c9 Initial commit. 2014-06-26 22:32:55 -07:00