6363NSString * const GCDWebServerOption_ConnectionClass = @" ConnectionClass" ;
6464NSString * const GCDWebServerOption_AutomaticallyMapHEADToGET = @" AutomaticallyMapHEADToGET" ;
6565NSString * const GCDWebServerOption_ConnectedStateCoalescingInterval = @" ConnectedStateCoalescingInterval" ;
66+ NSString * const GCDWebServerOption_DispatchQueuePriority = @" DispatchQueuePriority" ;
6667#if TARGET_OS_IPHONE
6768NSString * const GCDWebServerOption_AutomaticallySuspendInBackground = @" AutomaticallySuspendInBackground" ;
6869#endif
@@ -170,6 +171,7 @@ @interface GCDWebServer () {
170171 Class _connectionClass;
171172 BOOL _mapHEADToGET;
172173 CFTimeInterval _disconnectDelay;
174+ dispatch_queue_priority_t _dispatchQueuePriority;
173175 NSUInteger _port;
174176 dispatch_source_t _source4;
175177 dispatch_source_t _source6;
@@ -195,7 +197,7 @@ @implementation GCDWebServer
195197
196198@synthesize delegate=_delegate, handlers=_handlers, port=_port, serverName=_serverName, authenticationRealm=_authenticationRealm,
197199 authenticationBasicAccounts=_authenticationBasicAccounts, authenticationDigestAccounts=_authenticationDigestAccounts,
198- shouldAutomaticallyMapHEADToGET=_mapHEADToGET;
200+ shouldAutomaticallyMapHEADToGET=_mapHEADToGET, dispatchQueuePriority=_dispatchQueuePriority ;
199201
200202+ (void )initialize {
201203 GCDWebServerInitializeFunctions ();
@@ -493,7 +495,7 @@ - (int)_createListeningSocket:(BOOL)useIPv6
493495
494496- (dispatch_source_t )_createDispatchSourceWithListeningSocket : (int )listeningSocket isIPv6 : (BOOL )isIPv6 {
495497 dispatch_group_enter (_sourceGroup);
496- dispatch_source_t source = dispatch_source_create (DISPATCH_SOURCE_TYPE_READ, listeningSocket, 0 , kGCDWebServerGCDQueue );
498+ dispatch_source_t source = dispatch_source_create (DISPATCH_SOURCE_TYPE_READ, listeningSocket, 0 , dispatch_get_global_queue (_dispatchQueuePriority, 0 ) );
497499 dispatch_source_set_cancel_handler (source, ^{
498500
499501 @autoreleasepool {
@@ -599,6 +601,7 @@ - (BOOL)_start:(NSError**)error {
599601 _connectionClass = _GetOption (_options, GCDWebServerOption_ConnectionClass, [GCDWebServerConnection class ]);
600602 _mapHEADToGET = [_GetOption (_options, GCDWebServerOption_AutomaticallyMapHEADToGET, @YES ) boolValue ];
601603 _disconnectDelay = [_GetOption (_options, GCDWebServerOption_ConnectedStateCoalescingInterval, @1.0 ) doubleValue ];
604+ _dispatchQueuePriority = [_GetOption (_options, GCDWebServerOption_DispatchQueuePriority, @(DISPATCH_QUEUE_PRIORITY_DEFAULT)) longValue ];
602605
603606 _source4 = [self _createDispatchSourceWithListeningSocket: listeningSocket4 isIPv6: NO ];
604607 _source6 = [self _createDispatchSourceWithListeningSocket: listeningSocket6 isIPv6: YES ];
0 commit comments