[Minor Breaking API] Make deallocation queues more reliable (#651)

* Make our async deallocation functions take a double pointer, so we can be sure we've released before the queue drains

* Make it a class property

* Fix the return type

* Use a locker

* Improve release notes
This commit is contained in:
Adlai Holler
2017-11-02 10:45:34 -07:00
committed by GitHub
parent 64b6242b9c
commit ff608c92bf
13 changed files with 45 additions and 25 deletions

View File

@@ -21,7 +21,7 @@
NS_ASSUME_NONNULL_BEGIN
AS_SUBCLASSING_RESTRICTED
@interface ASRunLoopQueue<ObjectType> : NSObject
@interface ASRunLoopQueue<ObjectType> : NSObject <NSLocking>
/**
* Create a new queue with the given run loop and handler.
@@ -51,11 +51,11 @@ AS_SUBCLASSING_RESTRICTED
AS_SUBCLASSING_RESTRICTED
@interface ASDeallocQueue : NSObject
+ (instancetype)sharedDeallocationQueue;
@property (class, atomic, readonly) ASDeallocQueue *sharedDeallocationQueue;
- (void)test_drain;
- (void)releaseObjectInBackground:(id)object;
- (void)releaseObjectInBackground:(id __strong _Nullable * _Nonnull)objectPtr;
@end