RACTargetQueueScheduler.m 818 B

12345678910111213141516171819202122232425262728293031
  1. //
  2. // RACTargetQueueScheduler.m
  3. // ReactiveObjC
  4. //
  5. // Created by Josh Abernathy on 6/6/13.
  6. // Copyright (c) 2013 GitHub, Inc. All rights reserved.
  7. //
  8. #import "RACTargetQueueScheduler.h"
  9. #import "RACQueueScheduler+Subclass.h"
  10. @implementation RACTargetQueueScheduler
  11. #pragma mark Lifecycle
  12. - (instancetype)initWithName:(NSString *)name targetQueue:(dispatch_queue_t)targetQueue {
  13. NSCParameterAssert(targetQueue != NULL);
  14. if (name == nil) {
  15. name = [NSString stringWithFormat:@"org.reactivecocoa.ReactiveObjC.RACTargetQueueScheduler(%s)", dispatch_queue_get_label(targetQueue)];
  16. }
  17. dispatch_queue_t queue = dispatch_queue_create(name.UTF8String, DISPATCH_QUEUE_SERIAL);
  18. if (queue == NULL) return nil;
  19. dispatch_set_target_queue(queue, targetQueue);
  20. return [super initWithName:name queue:queue];
  21. }
  22. @end