Skip to content

Instantly share code, notes, and snippets.

@Xanewok
Created July 18, 2019 06:26
Show Gist options
  • Save Xanewok/ecd939b99174fd9baa4b62786db342db to your computer and use it in GitHub Desktop.
Save Xanewok/ecd939b99174fd9baa4b62786db342db to your computer and use it in GitHub Desktop.
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