aboutsummaryrefslogtreecommitdiff
path: root/src/task/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/task/mod.rs')
-rw-r--r--src/task/mod.rs25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/task/mod.rs b/src/task/mod.rs
index f151d0e..53369f1 100644
--- a/src/task/mod.rs
+++ b/src/task/mod.rs
@@ -14,7 +14,7 @@ use parking_lot::Mutex;
use self::callback::{Abort, Request as RequestCallback, UnaryRequest as UnaryRequestCallback};
use self::executor::SpawnTask;
-use self::promise::{Batch as BatchPromise, Shutdown as ShutdownPromise};
+use self::promise::{Action as ActionPromise, Batch as BatchPromise};
use crate::call::server::RequestContext;
use crate::call::{BatchContext, Call, MessageReader};
use crate::cq::CompletionQueue;
@@ -113,7 +113,7 @@ pub enum CallTag {
Request(RequestCallback),
UnaryRequest(UnaryRequestCallback),
Abort(Abort),
- Shutdown(ShutdownPromise),
+ Action(ActionPromise),
Spawn(Arc<SpawnTask>),
}
@@ -131,11 +131,12 @@ impl CallTag {
CallTag::Request(RequestCallback::new(ctx))
}
- /// Generate a Future/CallTag pair for shutdown call.
- pub fn shutdown_pair() -> (CqFuture<()>, CallTag) {
+ /// Generate a Future/CallTag pair for action call that only cares if the result is
+ /// successful.
+ pub fn action_pair() -> (CqFuture<bool>, CallTag) {
let inner = new_inner();
- let shutdown = ShutdownPromise::new(inner.clone());
- (CqFuture::new(inner), CallTag::Shutdown(shutdown))
+ let action = ActionPromise::new(inner.clone());
+ (CqFuture::new(inner), CallTag::Action(action))
}
/// Generate a CallTag for abort call before handler is called.
@@ -175,7 +176,7 @@ impl CallTag {
CallTag::Request(cb) => cb.resolve(cq, success),
CallTag::UnaryRequest(cb) => cb.resolve(cq, success),
CallTag::Abort(_) => {}
- CallTag::Shutdown(prom) => prom.resolve(success),
+ CallTag::Action(prom) => prom.resolve(success),
CallTag::Spawn(notify) => self::executor::resolve(notify, success),
}
}
@@ -188,7 +189,7 @@ impl Debug for CallTag {
CallTag::Request(_) => write!(f, "CallTag::Request(..)"),
CallTag::UnaryRequest(_) => write!(f, "CallTag::UnaryRequest(..)"),
CallTag::Abort(_) => write!(f, "CallTag::Abort(..)"),
- CallTag::Shutdown(_) => write!(f, "CallTag::Shutdown"),
+ CallTag::Action(_) => write!(f, "CallTag::Action"),
CallTag::Spawn(_) => write!(f, "CallTag::Spawn"),
}
}
@@ -208,8 +209,8 @@ mod tests {
fn test_resolve() {
let env = Environment::new(1);
- let (cq_f1, tag1) = CallTag::shutdown_pair();
- let (cq_f2, tag2) = CallTag::shutdown_pair();
+ let (cq_f1, tag1) = CallTag::action_pair();
+ let (cq_f2, tag2) = CallTag::action_pair();
let (tx, rx) = mpsc::channel();
let handler = thread::spawn(move || {
@@ -224,8 +225,8 @@ mod tests {
assert_eq!(rx.try_recv().unwrap_err(), TryRecvError::Empty);
tag2.resolve(&env.pick_cq(), false);
match rx.recv() {
- Ok(Err(Error::ShutdownFailed)) => {}
- res => panic!("expect shutdown failed, but got {:?}", res),
+ Ok(Ok(false)) => {}
+ res => panic!("expect Ok(false), but got {:?}", res),
}
handler.join().unwrap();