提交 9b22ca30 authored 作者: Serhij S's avatar Serhij S

async components moved to rtsc

上级 02fd0636
...@@ -44,7 +44,7 @@ metrics-exporter-prometheus = { version = "0.14.0", optional = true, default-fea ...@@ -44,7 +44,7 @@ metrics-exporter-prometheus = { version = "0.14.0", optional = true, default-fea
metrics = { version = "0.22.3", optional = true } metrics = { version = "0.22.3", optional = true }
parking_lot_rt = "0.12.1" parking_lot_rt = "0.12.1"
snmp = { version = "0.2.2", optional = true } snmp = { version = "0.2.2", optional = true }
rtsc = "0.1.4" rtsc = "0.1.6"
[features] [features]
eapi = ["eva-common", "eva-sdk", "busrt", "tokio", "hostname"] eapi = ["eva-common", "eva-sdk", "busrt", "tokio", "hostname"]
......
...@@ -91,8 +91,9 @@ impl<T: DataDeliveryPolicy + Clone> Hub<T> { ...@@ -91,8 +91,9 @@ impl<T: DataDeliveryPolicy + Clone> Hub<T> {
macro_rules! send_checked { macro_rules! send_checked {
($sub: expr, $msg: expr) => { ($sub: expr, $msg: expr) => {
if let Err(e) = $sub.tx.send($msg).await { if let Err(e) = $sub.tx.send($msg).await {
if !error_handler(&$sub.name, &e) { let err = e.into();
return Err(Error::HubSend(e.into())); if !error_handler(&$sub.name, &err) {
return Err(Error::HubSend(err.into()));
} }
} }
}; };
...@@ -216,11 +217,11 @@ impl<T: DataDeliveryPolicy + Clone> Client<T> { ...@@ -216,11 +217,11 @@ impl<T: DataDeliveryPolicy + Clone> Client<T> {
self.hub.send_checked(message, error_handler) self.hub.send_checked(message, error_handler)
} }
/// Receives a message from the hub (blocking) /// Receives a message from the hub (blocking)
pub fn recv(&self) -> impl Future<Output = Result<T>> + '_ { pub fn recv(&self) -> impl Future<Output = rtsc::Result<T>> + '_ {
self.rx.recv() self.rx.recv()
} }
/// Receives a message from the hub (non-blocking) /// Receives a message from the hub (non-blocking)
pub fn try_recv(&self) -> Result<T> { pub fn try_recv(&self) -> rtsc::Result<T> {
self.rx.try_recv() self.rx.try_recv()
} }
} }
......
...@@ -18,6 +18,7 @@ pub use metrics; ...@@ -18,6 +18,7 @@ pub use metrics;
pub use rtsc::buf; pub use rtsc::buf;
pub use rtsc::pchannel; pub use rtsc::pchannel;
pub use rtsc::pchannel_async;
pub use rtsc::time; pub use rtsc::time;
pub use rtsc::data_policy::{DataDeliveryPolicy, DeliveryPolicy}; pub use rtsc::data_policy::{DataDeliveryPolicy, DeliveryPolicy};
...@@ -33,8 +34,6 @@ pub mod hub; ...@@ -33,8 +34,6 @@ pub mod hub;
pub mod hub_async; pub mod hub_async;
/// I/O /// I/O
pub mod io; pub mod io;
/// Async policy channel
pub mod pchannel_async;
/// Task supervisor to manage real-time threads /// Task supervisor to manage real-time threads
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
pub mod supervisor; pub mod supervisor;
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论