mirror of
https://github.com/ntex-rs/ntex.git
synced 2025-04-01 20:07:39 +03:00
Use new values api (#521)
This commit is contained in:
parent
cfc32ed74f
commit
ab5fb624b7
5 changed files with 55 additions and 79 deletions
|
@ -45,7 +45,8 @@ ntex-util = { path = "ntex-util" }
|
|||
ntex-compio = { path = "ntex-compio" }
|
||||
ntex-tokio = { path = "ntex-tokio" }
|
||||
|
||||
ntex-neon = { git = "https://github.com/ntex-rs/neon.git" }
|
||||
#ntex-neon = { git = "https://github.com/ntex-rs/neon.git" }
|
||||
#ntex-neon = { path = "../dev/neon" }
|
||||
|
||||
[workspace.dependencies]
|
||||
async-task = "4.5.0"
|
||||
|
|
|
@ -90,27 +90,21 @@ struct ConnectOpsInner {
|
|||
|
||||
impl ConnectOps {
|
||||
pub(crate) fn current() -> Self {
|
||||
Runtime::with_current(|rt| {
|
||||
if let Some(s) = rt.get::<Self>() {
|
||||
s
|
||||
} else {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let ops = Rc::new(ConnectOpsInner {
|
||||
api,
|
||||
connects: RefCell::new(Slab::new()),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(ConnectOpsBatcher {
|
||||
inner: ops,
|
||||
feed: VecDeque::new(),
|
||||
})
|
||||
Runtime::value(|rt| {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let ops = Rc::new(ConnectOpsInner {
|
||||
api,
|
||||
connects: RefCell::new(Slab::new()),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(ConnectOpsBatcher {
|
||||
inner: ops,
|
||||
feed: VecDeque::new(),
|
||||
})
|
||||
});
|
||||
|
||||
let s = ConnectOps(inner.unwrap());
|
||||
rt.insert(s.clone());
|
||||
s
|
||||
}
|
||||
ConnectOps(inner.unwrap())
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -52,28 +52,22 @@ struct StreamOpsInner<T> {
|
|||
|
||||
impl<T: AsRawFd + 'static> StreamOps<T> {
|
||||
pub(crate) fn current() -> Self {
|
||||
Runtime::with_current(|rt| {
|
||||
if let Some(s) = rt.get::<Self>() {
|
||||
s
|
||||
} else {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let ops = Rc::new(StreamOpsInner {
|
||||
api,
|
||||
feed: Cell::new(Some(VecDeque::new())),
|
||||
streams: Cell::new(Some(Box::new(Slab::new()))),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(StreamOpsHandler {
|
||||
inner: ops,
|
||||
feed: VecDeque::new(),
|
||||
})
|
||||
Runtime::value(|rt| {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let ops = Rc::new(StreamOpsInner {
|
||||
api,
|
||||
feed: Cell::new(Some(VecDeque::new())),
|
||||
streams: Cell::new(Some(Box::new(Slab::new()))),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(StreamOpsHandler {
|
||||
inner: ops,
|
||||
feed: VecDeque::new(),
|
||||
})
|
||||
});
|
||||
|
||||
let s = StreamOps(inner.unwrap());
|
||||
rt.insert(s.clone());
|
||||
s
|
||||
}
|
||||
StreamOps(inner.unwrap())
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -85,24 +85,17 @@ struct ConnectOpsInner {
|
|||
|
||||
impl ConnectOps {
|
||||
pub(crate) fn current() -> Self {
|
||||
Runtime::with_current(|rt| {
|
||||
if let Some(s) = rt.get::<Self>() {
|
||||
s
|
||||
} else {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let ops = Rc::new(ConnectOpsInner {
|
||||
api,
|
||||
ops: RefCell::new(Slab::new()),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(ConnectOpsHandler { inner: ops })
|
||||
Runtime::value(|rt| {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let ops = Rc::new(ConnectOpsInner {
|
||||
api,
|
||||
ops: RefCell::new(Slab::new()),
|
||||
});
|
||||
|
||||
let s = ConnectOps(inner.unwrap());
|
||||
rt.insert(s.clone());
|
||||
s
|
||||
}
|
||||
inner = Some(ops.clone());
|
||||
Box::new(ConnectOpsHandler { inner: ops })
|
||||
});
|
||||
ConnectOps(inner.unwrap())
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -59,31 +59,25 @@ struct StreamOpsStorage<T> {
|
|||
|
||||
impl<T: AsRawFd + 'static> StreamOps<T> {
|
||||
pub(crate) fn current() -> Self {
|
||||
Runtime::with_current(|rt| {
|
||||
if let Some(s) = rt.get::<Self>() {
|
||||
s
|
||||
} else {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let mut ops = Slab::new();
|
||||
ops.insert(Operation::Nop);
|
||||
Runtime::value(|rt| {
|
||||
let mut inner = None;
|
||||
rt.driver().register(|api| {
|
||||
let mut ops = Slab::new();
|
||||
ops.insert(Operation::Nop);
|
||||
|
||||
let ops = Rc::new(StreamOpsInner {
|
||||
api,
|
||||
feed: RefCell::new(Vec::new()),
|
||||
storage: RefCell::new(StreamOpsStorage {
|
||||
ops,
|
||||
streams: Slab::new(),
|
||||
}),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(StreamOpsHandler { inner: ops })
|
||||
let ops = Rc::new(StreamOpsInner {
|
||||
api,
|
||||
feed: RefCell::new(Vec::new()),
|
||||
storage: RefCell::new(StreamOpsStorage {
|
||||
ops,
|
||||
streams: Slab::new(),
|
||||
}),
|
||||
});
|
||||
inner = Some(ops.clone());
|
||||
Box::new(StreamOpsHandler { inner: ops })
|
||||
});
|
||||
|
||||
let s = StreamOps(inner.unwrap());
|
||||
rt.insert(s.clone());
|
||||
s
|
||||
}
|
||||
StreamOps(inner.unwrap())
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue