Merge pull request #225 from apple/SR-4039-3.1

Swift 3.1: queue_specific_queue is missing its do_push vtable entry
diff --git a/src/init.c b/src/init.c
index 29d8c4e..a04daeb 100644
--- a/src/init.c
+++ b/src/init.c
@@ -398,6 +398,7 @@
 	.do_kind = "global-queue",
 	.do_dispose = _dispatch_pthread_root_queue_dispose,
 	.do_push = _dispatch_root_queue_push,
+	.do_invoke = NULL,
 	.do_wakeup = _dispatch_root_queue_wakeup,
 	.do_debug = dispatch_queue_debug,
 );
@@ -406,8 +407,8 @@
 	.do_type = DISPATCH_QUEUE_SERIAL_TYPE,
 	.do_kind = "main-queue",
 	.do_dispose = _dispatch_queue_dispose,
-	.do_invoke = _dispatch_queue_invoke,
 	.do_push = _dispatch_queue_push,
+	.do_invoke = _dispatch_queue_invoke,
 	.do_wakeup = _dispatch_main_queue_wakeup,
 	.do_debug = dispatch_queue_debug,
 );
@@ -416,8 +417,8 @@
 	.do_type = DISPATCH_QUEUE_RUNLOOP_TYPE,
 	.do_kind = "runloop-queue",
 	.do_dispose = _dispatch_runloop_queue_dispose,
-	.do_invoke = _dispatch_queue_invoke,
 	.do_push = _dispatch_queue_push,
+	.do_invoke = _dispatch_queue_invoke,
 	.do_wakeup = _dispatch_runloop_queue_wakeup,
 	.do_debug = dispatch_queue_debug,
 );
@@ -425,8 +426,8 @@
 DISPATCH_VTABLE_SUBCLASS_INSTANCE(queue_mgr, queue,
 	.do_type = DISPATCH_QUEUE_MGR_TYPE,
 	.do_kind = "mgr-queue",
-	.do_invoke = _dispatch_mgr_thread,
 	.do_push = _dispatch_queue_push,
+	.do_invoke = _dispatch_mgr_thread,
 	.do_wakeup = _dispatch_mgr_queue_wakeup,
 	.do_debug = dispatch_queue_debug,
 );
@@ -435,6 +436,7 @@
 	.do_type = DISPATCH_QUEUE_SPECIFIC_TYPE,
 	.do_kind = "queue-context",
 	.do_dispose = _dispatch_queue_specific_queue_dispose,
+	.do_push = (void *)_dispatch_queue_push,
 	.do_invoke = (void *)_dispatch_queue_invoke,
 	.do_wakeup = (void *)_dispatch_queue_wakeup,
 	.do_debug = (void *)dispatch_queue_debug,