Created
July 18, 2019 06:26
-
-
Save Xanewok/ecd939b99174fd9baa4b62786db342db to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/ipc/src/server.rs b/ipc/src/server.rs | |
index 506007e..7e490dd 100644 | |
--- a/ipc/src/server.rs | |
+++ b/ipc/src/server.rs | |
@@ -54,6 +54,7 @@ pub struct ServerBuilder<M: Metadata = (), S: Middleware<M> = middleware::Noop> | |
outgoing_separator: codecs::Separator, | |
security_attributes: SecurityAttributes, | |
client_buffer_size: usize, | |
+ handle: Handle, | |
} | |
impl<M: Metadata + Default, S: Middleware<M>> ServerBuilder<M, S> { | |
@@ -82,6 +83,7 @@ impl<M: Metadata, S: Middleware<M>> ServerBuilder<M, S> { | |
outgoing_separator: codecs::Separator::default(), | |
security_attributes: SecurityAttributes::empty(), | |
client_buffer_size: 5, | |
+ handle: Default::default(), | |
} | |
} | |
@@ -91,6 +93,12 @@ impl<M: Metadata, S: Middleware<M>> ServerBuilder<M, S> { | |
self | |
} | |
+ /// Sets shared different event loop handle. | |
+ pub fn event_loop_handle(mut self, handle: Handle) -> Self { | |
+ self.handle = handle; | |
+ self | |
+ } | |
+ | |
/// Sets session metadata extractor. | |
pub fn session_meta_extractor<X>(mut self, meta_extractor: X) -> Self | |
where | |
@@ -128,6 +136,7 @@ impl<M: Metadata, S: Middleware<M>> ServerBuilder<M, S> { | |
/// Creates a new server from the given endpoint. | |
pub fn start(self, path: &str) -> std::io::Result<Server> { | |
let executor = self.executor.initialize()?; | |
+ let handle = self.handle; | |
let rpc_handler = self.handler; | |
let endpoint_addr = path.to_owned(); | |
let meta_extractor = self.meta_extractor; | |
@@ -151,8 +160,7 @@ impl<M: Metadata, S: Middleware<M>> ServerBuilder<M, S> { | |
} | |
} | |
- let endpoint_handle = Handle::default(); | |
- let connections = match endpoint.incoming(&endpoint_handle) { | |
+ let connections = match endpoint.incoming(&handle) { | |
Ok(connections) => connections, | |
Err(e) => { | |
start_signal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment