File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -961,6 +961,9 @@ pub struct TreeSequence {
961
961
pub ( crate ) inner : MBox < ll_bindings:: tsk_treeseq_t > ,
962
962
}
963
963
964
+ unsafe impl Send for TreeSequence { }
965
+ unsafe impl Sync for TreeSequence { }
966
+
964
967
build_tskit_type ! ( TreeSequence , ll_bindings:: tsk_treeseq_t, tsk_treeseq_free) ;
965
968
966
969
impl TreeSequence {
@@ -1612,3 +1615,19 @@ pub(crate) mod test_trees {
1612
1615
}
1613
1616
}
1614
1617
}
1618
+
1619
+ #[ cfg( test) ]
1620
+ mod test_treeeseq_send_sync {
1621
+ use crate :: test_fixtures:: treeseq_from_small_table_collection_two_trees;
1622
+ use std:: sync:: Arc ;
1623
+ use std:: thread;
1624
+
1625
+ #[ test]
1626
+ fn build_arc ( ) {
1627
+ let t = treeseq_from_small_table_collection_two_trees ( ) ;
1628
+ let a = Arc :: new ( t) ;
1629
+ let join_handle = thread:: spawn ( move || a. num_trees ( ) ) ;
1630
+ let ntrees = join_handle. join ( ) . unwrap ( ) ;
1631
+ assert_eq ! ( ntrees, 2 ) ;
1632
+ }
1633
+ }
You can’t perform that action at this time.
0 commit comments