Simple 2FSK

This commit is contained in:
2026-03-17 17:34:42 +01:00
parent 520d97726f
commit 3cdc0e613a
14 changed files with 4787 additions and 31 deletions

View File

@ -1,3 +1,5 @@
use std::thread::JoinHandle;
use crate::block::GraphableBlock;
#[macro_export]
@ -33,22 +35,35 @@ impl FlowGraph
self.blocks.push(Box::new(block));
}
pub fn run(mut self)
pub fn run(mut self) -> JoinHandle<()>
{
self.populate_edges();
let mut k = vec![];
for mut x in self.blocks.into_iter()
{
k.push(std::thread::spawn(move || {
loop
std::thread::spawn(move || {
'outer: loop
{
for x in self.blocks.iter_mut()
{
match x.work()
{
crate::block::BlockResult::Ok =>
{}
crate::block::BlockResult::Terminated =>
{
break 'outer;
}
}
}
}
for _ in 0..10_000
{
for x in self.blocks.iter_mut()
{
x.work();
}
}));
}
k.into_iter().for_each(|j| {
let _ = j.join();
});
}
})
}
fn populate_edges(&mut self)

View File

@ -48,10 +48,10 @@ pub struct StreamConsumer<T>
}
unsafe impl<T: Send> Send for StreamProducer<T> {}
unsafe impl<T> Sync for StreamProducer<T> {}
unsafe impl<T: Send> Sync for StreamProducer<T> {}
unsafe impl<T: Send> Send for StreamConsumer<T> {}
unsafe impl<T> Sync for StreamConsumer<T> {}
unsafe impl<T: Send> Sync for StreamConsumer<T> {}
// Represents a write operation within a stream producer
pub struct StreamWriter<'a, T>