summaryrefslogtreecommitdiff
path: root/ext/flash/socket.rs
diff options
context:
space:
mode:
authorYusuke Tanaka <yusuktan@maguro.dev>2022-11-25 02:38:09 +0900
committerGitHub <noreply@github.com>2022-11-24 18:38:09 +0100
commitfd023cf7937e67dfde5482d34ebc60839eb7397c (patch)
tree816c976254071ecd9c15a35ad6b68d78066428d1 /ext/flash/socket.rs
parentb6f49cf4790926df125add2329611a8eff8db9da (diff)
fix(ext/flash): graceful server startup/shutdown with unsettled promises in mind (#16616)
This PR resets the revert commit made by #16610, bringing back #16383 which attempts to fix the issue happening when we use the flash server with `--watch` option enabled. Also, some code changes are made to pass the regression test added in #16610.
Diffstat (limited to 'ext/flash/socket.rs')
-rw-r--r--ext/flash/socket.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/ext/flash/socket.rs b/ext/flash/socket.rs
index 8256be8a0..7c75b230a 100644
--- a/ext/flash/socket.rs
+++ b/ext/flash/socket.rs
@@ -1,23 +1,26 @@
use deno_core::error::AnyError;
use mio::net::TcpStream;
-use std::{
- cell::UnsafeCell,
- future::Future,
- io::{Read, Write},
- pin::Pin,
- sync::{Arc, Mutex},
-};
+use std::cell::UnsafeCell;
+use std::future::Future;
+use std::io::Read;
+use std::io::Write;
+use std::marker::PhantomPinned;
+use std::pin::Pin;
+use std::sync::Arc;
+use std::sync::Mutex;
use tokio::sync::mpsc;
use crate::ParseStatus;
type TlsTcpStream = rustls::StreamOwned<rustls::ServerConnection, TcpStream>;
+#[derive(Debug)]
pub enum InnerStream {
Tcp(TcpStream),
Tls(Box<TlsTcpStream>),
}
+#[derive(Debug)]
pub struct Stream {
pub inner: InnerStream,
pub detached: bool,
@@ -26,6 +29,7 @@ pub struct Stream {
pub parse_done: ParseStatus,
pub buffer: UnsafeCell<Vec<u8>>,
pub read_lock: Arc<Mutex<()>>,
+ pub _pinned: PhantomPinned,
}
impl Stream {