@@ -30,7 +30,7 @@ pub enum SchedulingAction {
30
30
31
31
/// A thread identifier.
32
32
#[ derive( Clone , Copy , Debug , PartialOrd , Ord , PartialEq , Eq , Hash ) ]
33
- pub struct ThreadId ( usize ) ;
33
+ pub struct ThreadId ( u32 ) ;
34
34
35
35
/// The main thread. When it terminates, the whole application terminates.
36
36
const MAIN_THREAD : ThreadId = ThreadId ( 0 ) ;
@@ -43,22 +43,22 @@ impl ThreadId {
43
43
44
44
impl Idx for ThreadId {
45
45
fn new ( idx : usize ) -> Self {
46
- ThreadId ( idx)
46
+ ThreadId ( u32 :: try_from ( idx) . unwrap ( ) )
47
47
}
48
48
fn index ( self ) -> usize {
49
- self . 0
49
+ usize :: try_from ( self . 0 ) . unwrap ( )
50
50
}
51
51
}
52
52
53
53
impl From < u64 > for ThreadId {
54
54
fn from ( id : u64 ) -> Self {
55
- Self ( usize :: try_from ( id) . unwrap ( ) )
55
+ Self ( u32 :: try_from ( id) . unwrap ( ) )
56
56
}
57
57
}
58
58
59
59
impl From < u32 > for ThreadId {
60
60
fn from ( id : u32 ) -> Self {
61
- Self ( usize :: try_from ( id) . unwrap ( ) )
61
+ Self ( u32 :: try_from ( id) . unwrap ( ) )
62
62
}
63
63
}
64
64
@@ -73,13 +73,11 @@ impl ThreadId {
73
73
#[ derive( Clone , Copy , Debug , PartialOrd , Ord , PartialEq , Eq , Hash ) ]
74
74
pub struct BlockSetId ( NonZeroU32 ) ;
75
75
76
- impl From < u32 > for BlockSetId {
77
- fn from ( id : u32 ) -> Self {
76
+ impl BlockSetId {
77
+ /// Panics if `id` is 0.
78
+ pub fn new ( id : u32 ) -> Self {
78
79
Self ( NonZeroU32 :: new ( id) . expect ( "0 is not a valid blockset id" ) )
79
80
}
80
- }
81
-
82
- impl BlockSetId {
83
81
pub fn to_u32_scalar < ' tcx > ( & self ) -> Scalar < Tag > {
84
82
Scalar :: from_u32 ( self . 0 . get ( ) )
85
83
}
@@ -325,7 +323,7 @@ impl<'mir, 'tcx: 'mir> ThreadManager<'mir, 'tcx> {
325
323
/// Allocate a new blockset id.
326
324
fn create_blockset ( & mut self ) -> BlockSetId {
327
325
self . blockset_counter = self . blockset_counter . checked_add ( 1 ) . unwrap ( ) ;
328
- self . blockset_counter . into ( )
326
+ BlockSetId :: new ( self . blockset_counter )
329
327
}
330
328
331
329
/// Block the currently active thread and put it into the given blockset.
0 commit comments