Merge pull request #1122 from knopp/_ASAsyncTransaction-operation-priority

[_ASAsyncTransaction] make priority a NSInteger with default to 0
This commit is contained in:
appleguy
2016-01-26 19:47:57 -08:00
4 changed files with 18 additions and 18 deletions

View File

@@ -69,7 +69,7 @@ typedef NS_OPTIONS(NSUInteger, ASInterfaceState)
/**
* Default drawing priority for display node
*/
extern NSUInteger const ASDefaultDrawingPriority;
extern NSInteger const ASDefaultDrawingPriority;
/**
* An `ASDisplayNode` is an abstraction over `UIView` and `CALayer` that allows you to perform calculations about a view
@@ -486,7 +486,7 @@ NS_ASSUME_NONNULL_BEGIN
* @discussion Defaults to ASDefaultDrawingPriority. There may be multiple drawing threads, and some of them may
* decide to perform operations in queued order (regardless of drawingPriority)
*/
@property (nonatomic, assign) NSUInteger drawingPriority;
@property (nonatomic, assign) NSInteger drawingPriority;
/** @name Hit Testing */

View File

@@ -26,7 +26,7 @@
#import "ASLayoutSpec.h"
#import "ASCellNode.h"
NSUInteger const ASDefaultDrawingPriority = ASDefaultTransactionPriority;
NSInteger const ASDefaultDrawingPriority = ASDefaultTransactionPriority;
@interface ASDisplayNode () <UIGestureRecognizerDelegate>
@@ -2240,7 +2240,7 @@ static void _recursivelySetDisplaySuspended(ASDisplayNode *node, CALayer *layer,
static const char *ASDisplayNodeDrawingPriorityKey = "ASDrawingPriority";
- (void)setDrawingPriority:(NSUInteger)drawingPriority
- (void)setDrawingPriority:(NSInteger)drawingPriority
{
ASDisplayNodeAssertThreadAffinity(self);
ASDN::MutexLocker l(_propertyLock);
@@ -2249,18 +2249,18 @@ static const char *ASDisplayNodeDrawingPriorityKey = "ASDrawingPriority";
objc_setAssociatedObject(self, ASDisplayNodeDrawingPriorityKey, nil, OBJC_ASSOCIATION_ASSIGN);
} else {
_flags.hasCustomDrawingPriority = YES;
objc_setAssociatedObject(self, ASDisplayNodeDrawingPriorityKey, [NSNumber numberWithUnsignedInteger:drawingPriority], OBJC_ASSOCIATION_RETAIN);
objc_setAssociatedObject(self, ASDisplayNodeDrawingPriorityKey, [NSNumber numberWithInteger:drawingPriority], OBJC_ASSOCIATION_RETAIN);
}
}
-(NSUInteger)drawingPriority
-(NSInteger)drawingPriority
{
ASDisplayNodeAssertThreadAffinity(self);
ASDN::MutexLocker l(_propertyLock);
if (!_flags.hasCustomDrawingPriority)
return ASDefaultDrawingPriority;
else
return [objc_getAssociatedObject(self, ASDisplayNodeDrawingPriorityKey) unsignedIntegerValue];
return [objc_getAssociatedObject(self, ASDisplayNodeDrawingPriorityKey) integerValue];
}
- (BOOL)isInHierarchy

View File

@@ -29,7 +29,7 @@ typedef NS_ENUM(NSUInteger, ASAsyncTransactionState) {
ASAsyncTransactionStateComplete
};
extern NSUInteger const ASDefaultTransactionPriority;
extern NSInteger const ASDefaultTransactionPriority;
/**
@summary ASAsyncTransaction provides lightweight transaction semantics for asynchronous operations.
@@ -110,7 +110,7 @@ extern NSUInteger const ASDefaultTransactionPriority;
operations in the transaction are completed. Executed and released on callbackQueue.
*/
- (void)addOperationWithBlock:(asyncdisplaykit_async_transaction_operation_block_t)block
priority:(NSUInteger)priority
priority:(NSInteger)priority
queue:(dispatch_queue_t)queue
completion:(asyncdisplaykit_async_transaction_operation_completion_block_t)completion;
@@ -149,7 +149,7 @@ extern NSUInteger const ASDefaultTransactionPriority;
operations in the transaction are completed. Executed and released on callbackQueue.
*/
- (void)addAsyncOperationWithBlock:(asyncdisplaykit_async_transaction_async_operation_block_t)block
priority:(NSUInteger)priority
priority:(NSInteger)priority
queue:(dispatch_queue_t)queue
completion:(asyncdisplaykit_async_transaction_operation_completion_block_t)completion;

View File

@@ -13,7 +13,7 @@
#import <list>
#import <map>
NSUInteger const ASDefaultTransactionPriority = 128;
NSInteger const ASDefaultTransactionPriority = 0;
@interface ASDisplayNodeAsyncTransactionOperation : NSObject
- (id)initWithOperationCompletionBlock:(asyncdisplaykit_async_transaction_operation_completion_block_t)operationCompletionBlock;
@@ -65,7 +65,7 @@ public:
virtual void release() = 0;
// schedule block on given queue
virtual void schedule(NSUInteger priority, dispatch_queue_t queue, dispatch_block_t block) = 0;
virtual void schedule(NSInteger priority, dispatch_queue_t queue, dispatch_block_t block) = 0;
// dispatch block on given queue when all previously scheduled blocks finished executing
virtual void notify(dispatch_queue_t queue, dispatch_block_t block) = 0;
@@ -105,7 +105,7 @@ private:
}
virtual void release();
virtual void schedule(NSUInteger priority, dispatch_queue_t queue, dispatch_block_t block);
virtual void schedule(NSInteger priority, dispatch_queue_t queue, dispatch_block_t block);
virtual void notify(dispatch_queue_t queue, dispatch_block_t block);
virtual void enter();
virtual void leave();
@@ -122,14 +122,14 @@ private:
{
dispatch_block_t _block;
GroupImpl *_group;
NSUInteger _priority;
NSInteger _priority;
};
struct DispatchEntry // entry for each dispatch queue
{
typedef std::list<Operation> OperationQueue;
typedef std::list<OperationQueue::iterator> OperationIteratorList; // each item points to operation queue
typedef std::map<NSUInteger, OperationIteratorList> OperationPriorityMap; // sorted by priority
typedef std::map<NSInteger, OperationIteratorList> OperationPriorityMap; // sorted by priority
OperationQueue _operationQueue;
OperationPriorityMap _operationPriorityMap;
@@ -197,7 +197,7 @@ void ASAsyncTransactionQueue::DispatchEntry::pushOperation(ASAsyncTransactionQue
list.push_back(--_operationQueue.end());
}
void ASAsyncTransactionQueue::GroupImpl::schedule(NSUInteger priority, dispatch_queue_t queue, dispatch_block_t block)
void ASAsyncTransactionQueue::GroupImpl::schedule(NSInteger priority, dispatch_queue_t queue, dispatch_block_t block)
{
ASAsyncTransactionQueue &q = _queue;
ASDN::MutexLocker locker(q._mutex);
@@ -353,7 +353,7 @@ ASAsyncTransactionQueue & ASAsyncTransactionQueue::instance()
}
- (void)addAsyncOperationWithBlock:(asyncdisplaykit_async_transaction_async_operation_block_t)block
priority:(NSUInteger)priority
priority:(NSInteger)priority
queue:(dispatch_queue_t)queue
completion:(asyncdisplaykit_async_transaction_operation_completion_block_t)completion
{
@@ -388,7 +388,7 @@ ASAsyncTransactionQueue & ASAsyncTransactionQueue::instance()
}
- (void)addOperationWithBlock:(asyncdisplaykit_async_transaction_operation_block_t)block
priority:(NSUInteger)priority
priority:(NSInteger)priority
queue:(dispatch_queue_t)queue
completion:(asyncdisplaykit_async_transaction_operation_completion_block_t)completion
{