pub struct Config {
pub name: String,
pub call_slots: usize,
pub call_timeout: Option<Duration>,
pub maximum_services_num: usize,
pub thread_pool: Arc<Mutex<ThreadPool>>,
}
Expand description
A configuration of a remote-trait-object
context.
Fields§
§name: String
A name that will be appended to the names of various threads spawned by remote-trait-object
, for an easy debug.
This can be helpful if you handle multiple contexts of remote-trait-object
.
call_slots: usize
Number of the maximum of concurrent calls.
Value of this doesn’t have anything to do with the number of threads that would be spawned. Having a large number of this wouldn’t charge any cost except really small additional memory allocation.
call_timeout: Option<Duration>
A timeout for a remote method call.
All remote method invocations through your proxy object and delete requests (that happens when you drop a proxy object) will have this timeout. If it exceeds, it will cause an error.
Use None
for to wait indefinitely.
maximum_services_num: usize
A maximum number of services that this context can export.
thread_pool: Arc<Mutex<ThreadPool>>
A shared instance of a thread pool that will be used in call handling
A remote-trait-object
context will use this thread pool to handle an incoming method call.
Size of this pool determines the maximum number of concurrent calls that the context can handle.
Note that this pool is wrapped in Arc
, which means that it can be possibly shared with other places.