mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Merge pull request #1122 from knopp/_ASAsyncTransaction-operation-priority
[_ASAsyncTransaction] make priority a NSInteger with default to 0
This commit is contained in:
@@ -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 */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user