Browse Source

Also dispatch the actual request handlers on new threads.

Daniel Alm 7 years ago
parent
commit
43a3c46f3e

+ 2 - 1
Sources/SwiftGRPC/Runtime/ServerSessionBidirectionalStreaming.swift

@@ -36,7 +36,8 @@ open class ServerSessionBidirectionalStreamingBase<InputType: Message, OutputTyp
   
   public func run(queue: DispatchQueue) throws {
     try handler.sendMetadata(initialMetadata: initialMetadata) { success in
-      queue.async {
+      let handlerThreadQueue = DispatchQueue(label: "SwiftGRPC.ServerSessionBidirectionalStreamingBase.run.handlerThread")
+      handlerThreadQueue.async {
         var responseStatus: ServerStatus?
         if success {
           do {

+ 2 - 1
Sources/SwiftGRPC/Runtime/ServerSessionClientStreaming.swift

@@ -42,7 +42,8 @@ open class ServerSessionClientStreamingBase<InputType: Message, OutputType: Mess
   
   public func run(queue: DispatchQueue) throws {
     try handler.sendMetadata(initialMetadata: initialMetadata) { success in
-      queue.async {
+      let handlerThreadQueue = DispatchQueue(label: "SwiftGRPC.ServerSessionClientStreamingBase.run.handlerThread")
+      handlerThreadQueue.async {
         var responseStatus: ServerStatus?
         if success {
           do {

+ 2 - 1
Sources/SwiftGRPC/Runtime/ServerSessionServerStreaming.swift

@@ -35,7 +35,8 @@ open class ServerSessionServerStreamingBase<InputType: Message, OutputType: Mess
   
   public func run(queue: DispatchQueue) throws {
     try handler.receiveMessage(initialMetadata: initialMetadata) { requestData in
-      queue.async {
+      let handlerThreadQueue = DispatchQueue(label: "SwiftGRPC.ServerSessionServerStreamingBase.run.handlerThread")
+      handlerThreadQueue.async {
         var responseStatus: ServerStatus?
         if let requestData = requestData {
           do {

+ 2 - 1
Sources/SwiftGRPC/Runtime/ServerSessionUnary.swift

@@ -33,7 +33,8 @@ open class ServerSessionUnaryBase<InputType: Message, OutputType: Message>: Serv
   
   public func run(queue: DispatchQueue) throws {
     try handler.receiveMessage(initialMetadata: initialMetadata) { requestData in
-      queue.async {
+      let handlerThreadQueue = DispatchQueue(label: "SwiftGRPC.ServerSessionUnaryBase.run.handlerThread")
+      handlerThreadQueue.async {
         let responseStatus: ServerStatus
         if let requestData = requestData {
           do {