Hey, thank you for forking and taking your time to merge the fixes!
Judging the commit e84fe764003a924bd5c04d4dd2f1e0accc3c3654 I assume that you've decided to only keep the arc version of im
and ditch im-rc
.
So I am surprised to see, that the following code
use std::sync::Mutex;
use std::thread;
extern crate imbl;
fn main() {
let x : Mutex<imbl::Vector<u32>> = Mutex::new(imbl::Vector::new());
thread::spawn(move || {
let _ = x;
});
}
Compiles fine with the commit right before removing the Rc implementation
[dependencies]
imbl = {git="https://github.com/jneem/imbl.git", rev="67ce8b5976941fbf2d1c96f5c68e868a497237d8"}
But doesn't compile after removing the Rc implementation
[dependencies]
imbl = {git="https://github.com/jneem/imbl.git", rev="e84fe764003a924bd5c04d4dd2f1e0accc3c3654"}
error[E0277]: `Rc<sized_chunks::sized_chunk::Chunk<usize>>` cannot be sent between threads safely
--> src/main.rs:10:5
|
10 | thread::spawn(move || {
| ^^^^^^^^^^^^^ `Rc<sized_chunks::sized_chunk::Chunk<usize>>` cannot be sent between threads safely
|
= help: within `Vector<u32>`, the trait `Send` is not implemented for `Rc<sized_chunks::sized_chunk::Chunk<usize>>`
I am using rustc 1.54.0 (a178d0322 2021-07-26)
on Ubuntu 21.4