names for threds
This commit is contained in:
committed by
Greg Fitzgerald
parent
68955bfcf4
commit
3eb005d492
@ -10,7 +10,7 @@ use std::net::{SocketAddr, UdpSocket};
|
|||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::mpsc;
|
use std::sync::mpsc;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
use std::thread::{spawn, JoinHandle};
|
use std::thread::{Builder, JoinHandle};
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
pub const WINDOW_SIZE: usize = 2 * 1024;
|
pub const WINDOW_SIZE: usize = 2 * 1024;
|
||||||
@ -58,10 +58,13 @@ pub fn receiver(
|
|||||||
if res.is_err() {
|
if res.is_err() {
|
||||||
panic!("streamer::receiver set_read_timeout error");
|
panic!("streamer::receiver set_read_timeout error");
|
||||||
}
|
}
|
||||||
spawn(move || {
|
Builder::new()
|
||||||
|
.name("receiver".to_string())
|
||||||
|
.spawn(move || {
|
||||||
let _ = recv_loop(&sock, &exit, &recycler, &packet_sender);
|
let _ = recv_loop(&sock, &exit, &recycler, &packet_sender);
|
||||||
()
|
()
|
||||||
})
|
})
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn recv_send(sock: &UdpSocket, recycler: &BlobRecycler, r: &BlobReceiver) -> Result<()> {
|
fn recv_send(sock: &UdpSocket, recycler: &BlobRecycler, r: &BlobReceiver) -> Result<()> {
|
||||||
@ -96,11 +99,14 @@ pub fn responder(
|
|||||||
recycler: BlobRecycler,
|
recycler: BlobRecycler,
|
||||||
r: BlobReceiver,
|
r: BlobReceiver,
|
||||||
) -> JoinHandle<()> {
|
) -> JoinHandle<()> {
|
||||||
spawn(move || loop {
|
Builder::new()
|
||||||
|
.name("responder".to_string())
|
||||||
|
.spawn(move || loop {
|
||||||
if recv_send(&sock, &recycler, &r).is_err() && exit.load(Ordering::Relaxed) {
|
if recv_send(&sock, &recycler, &r).is_err() && exit.load(Ordering::Relaxed) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO, we would need to stick block authentication before we create the
|
//TODO, we would need to stick block authentication before we create the
|
||||||
@ -124,12 +130,15 @@ pub fn blob_receiver(
|
|||||||
//1 second timeout on socket read
|
//1 second timeout on socket read
|
||||||
let timer = Duration::new(1, 0);
|
let timer = Duration::new(1, 0);
|
||||||
sock.set_read_timeout(Some(timer))?;
|
sock.set_read_timeout(Some(timer))?;
|
||||||
let t = spawn(move || loop {
|
let t = Builder::new()
|
||||||
|
.name("blob_receiver".to_string())
|
||||||
|
.spawn(move || loop {
|
||||||
if exit.load(Ordering::Relaxed) {
|
if exit.load(Ordering::Relaxed) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let _ = recv_blobs(&recycler, &sock, &s);
|
let _ = recv_blobs(&recycler, &sock, &s);
|
||||||
});
|
})
|
||||||
|
.unwrap();
|
||||||
Ok(t)
|
Ok(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,7 +329,9 @@ pub fn window(
|
|||||||
s: BlobSender,
|
s: BlobSender,
|
||||||
retransmit: BlobSender,
|
retransmit: BlobSender,
|
||||||
) -> JoinHandle<()> {
|
) -> JoinHandle<()> {
|
||||||
spawn(move || {
|
Builder::new()
|
||||||
|
.name("window".to_string())
|
||||||
|
.spawn(move || {
|
||||||
let mut consumed = 0;
|
let mut consumed = 0;
|
||||||
let mut received = 0;
|
let mut received = 0;
|
||||||
let mut last = 0;
|
let mut last = 0;
|
||||||
@ -349,6 +360,7 @@ pub fn window(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn broadcast(
|
fn broadcast(
|
||||||
@ -415,7 +427,9 @@ pub fn broadcaster(
|
|||||||
recycler: BlobRecycler,
|
recycler: BlobRecycler,
|
||||||
r: BlobReceiver,
|
r: BlobReceiver,
|
||||||
) -> JoinHandle<()> {
|
) -> JoinHandle<()> {
|
||||||
spawn(move || {
|
Builder::new()
|
||||||
|
.name("retransmitter".to_string())
|
||||||
|
.spawn(move || {
|
||||||
let mut transmit_index = 0;
|
let mut transmit_index = 0;
|
||||||
loop {
|
loop {
|
||||||
if exit.load(Ordering::Relaxed) {
|
if exit.load(Ordering::Relaxed) {
|
||||||
@ -424,6 +438,7 @@ pub fn broadcaster(
|
|||||||
let _ = broadcast(&crdt, &window, &recycler, &r, &sock, &mut transmit_index);
|
let _ = broadcast(&crdt, &window, &recycler, &r, &sock, &mut transmit_index);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn retransmit(
|
fn retransmit(
|
||||||
@ -463,7 +478,9 @@ pub fn retransmitter(
|
|||||||
recycler: BlobRecycler,
|
recycler: BlobRecycler,
|
||||||
r: BlobReceiver,
|
r: BlobReceiver,
|
||||||
) -> JoinHandle<()> {
|
) -> JoinHandle<()> {
|
||||||
spawn(move || {
|
Builder::new()
|
||||||
|
.name("retransmitter".to_string())
|
||||||
|
.spawn(move || {
|
||||||
trace!("retransmitter started");
|
trace!("retransmitter started");
|
||||||
loop {
|
loop {
|
||||||
if exit.load(Ordering::Relaxed) {
|
if exit.load(Ordering::Relaxed) {
|
||||||
@ -474,6 +491,7 @@ pub fn retransmitter(
|
|||||||
}
|
}
|
||||||
trace!("exiting retransmitter");
|
trace!("exiting retransmitter");
|
||||||
})
|
})
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(all(feature = "unstable", test))]
|
#[cfg(all(feature = "unstable", test))]
|
||||||
|
Reference in New Issue
Block a user