[fix](trx-ft8): make decoder Send

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>
This commit is contained in:
2026-02-09 21:25:19 +01:00
parent c4ca178097
commit cf11c16096
+5 -1
View File
@@ -50,6 +50,10 @@ pub struct Ft8Decoder {
sample_rate: u32, sample_rate: u32,
} }
// SAFETY: Ft8Decoder owns its C-side state and is not shared across threads.
// It is only moved into a single task, so Send is safe.
unsafe impl Send for Ft8Decoder {}
impl Ft8Decoder { impl Ft8Decoder {
pub fn new(sample_rate: u32) -> Result<Self, String> { pub fn new(sample_rate: u32) -> Result<Self, String> {
unsafe { unsafe {
@@ -112,7 +116,7 @@ impl Ft8Decoder {
let count = count.max(0) as usize; let count = count.max(0) as usize;
let mut out = Vec::with_capacity(count); let mut out = Vec::with_capacity(count);
for item in raw.into_iter().take(count) { for item in raw.into_iter().take(count) {
let text = unsafe { CStr::from_ptr(item.text.as_ptr()) } let text = CStr::from_ptr(item.text.as_ptr())
.to_string_lossy() .to_string_lossy()
.to_string(); .to_string();
out.push(Ft8DecodeResult { out.push(Ft8DecodeResult {