mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-27 21:50:50 +00:00

git-subtree-dir: submodules/SSignalKit git-subtree-mainline: 4459dc5b47e7db4ea1adb3a43a4324d1c2f9feab git-subtree-split: 359b2ee7c9f20f99f221f78e307369ef5ad0ece2
52 lines
853 B
Objective-C
52 lines
853 B
Objective-C
#import "SThreadPoolQueue.h"
|
|
|
|
#import "SThreadPool.h"
|
|
|
|
@interface SThreadPoolQueue ()
|
|
{
|
|
__weak SThreadPool *_threadPool;
|
|
NSMutableArray *_tasks;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation SThreadPoolQueue
|
|
|
|
- (instancetype)initWithThreadPool:(SThreadPool *)threadPool
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_threadPool = threadPool;
|
|
_tasks = [[NSMutableArray alloc] init];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)addTask:(SThreadPoolTask *)task
|
|
{
|
|
SThreadPool *threadPool = _threadPool;
|
|
[threadPool _workOnQueue:self block:^
|
|
{
|
|
[_tasks addObject:task];
|
|
}];
|
|
}
|
|
|
|
- (SThreadPoolTask *)_popFirstTask
|
|
{
|
|
if (_tasks.count != 0)
|
|
{
|
|
SThreadPoolTask *task = _tasks[0];
|
|
[_tasks removeObjectAtIndex:0];
|
|
return task;
|
|
}
|
|
return nil;
|
|
}
|
|
|
|
- (bool)_hasTasks
|
|
{
|
|
return _tasks.count != 0;
|
|
}
|
|
|
|
@end
|