@@ -859,7 +859,7 @@ impl VClockAlloc {
859
859
| MiriMemoryKind :: Mmap ,
860
860
)
861
861
| MemoryKind :: Stack => {
862
- let ( alloc_index, clocks) = global. current_thread_state ( thread_mgr) ;
862
+ let ( alloc_index, clocks) = global. active_thread_state ( thread_mgr) ;
863
863
let mut alloc_timestamp = clocks. clock [ alloc_index] ;
864
864
alloc_timestamp. span = current_span;
865
865
( alloc_timestamp, alloc_index)
@@ -932,7 +932,7 @@ impl VClockAlloc {
932
932
ptr_dbg : Pointer < AllocId > ,
933
933
ty : Option < Ty < ' _ > > ,
934
934
) -> InterpResult < ' tcx > {
935
- let ( current_index , current_clocks ) = global. current_thread_state ( thread_mgr) ;
935
+ let ( active_index , active_clocks ) = global. active_thread_state ( thread_mgr) ;
936
936
let mut other_size = None ; // if `Some`, this was a size-mismatch race
937
937
let write_clock;
938
938
let ( other_access, other_thread, other_clock) =
@@ -941,30 +941,30 @@ impl VClockAlloc {
941
941
// we are reporting races between two non-atomic reads.
942
942
if !access. is_atomic ( ) &&
943
943
let Some ( atomic) = mem_clocks. atomic ( ) &&
944
- let Some ( idx) = Self :: find_gt_index ( & atomic. write_vector , & current_clocks . clock )
944
+ let Some ( idx) = Self :: find_gt_index ( & atomic. write_vector , & active_clocks . clock )
945
945
{
946
946
( AccessType :: AtomicStore , idx, & atomic. write_vector )
947
947
} else if !access. is_atomic ( ) &&
948
948
let Some ( atomic) = mem_clocks. atomic ( ) &&
949
- let Some ( idx) = Self :: find_gt_index ( & atomic. read_vector , & current_clocks . clock )
949
+ let Some ( idx) = Self :: find_gt_index ( & atomic. read_vector , & active_clocks . clock )
950
950
{
951
951
( AccessType :: AtomicLoad , idx, & atomic. read_vector )
952
952
// Then check races with non-atomic writes/reads.
953
- } else if mem_clocks. write . 1 > current_clocks . clock [ mem_clocks. write . 0 ] {
953
+ } else if mem_clocks. write . 1 > active_clocks . clock [ mem_clocks. write . 0 ] {
954
954
write_clock = mem_clocks. write ( ) ;
955
955
( AccessType :: NaWrite ( mem_clocks. write_type ) , mem_clocks. write . 0 , & write_clock)
956
- } else if let Some ( idx) = Self :: find_gt_index ( & mem_clocks. read , & current_clocks . clock ) {
956
+ } else if let Some ( idx) = Self :: find_gt_index ( & mem_clocks. read , & active_clocks . clock ) {
957
957
( AccessType :: NaRead ( mem_clocks. read [ idx] . read_type ( ) ) , idx, & mem_clocks. read )
958
958
// Finally, mixed-size races.
959
959
} else if access. is_atomic ( ) && let Some ( atomic) = mem_clocks. atomic ( ) && atomic. size != access_size {
960
960
// This is only a race if we are not synchronized with all atomic accesses, so find
961
961
// the one we are not synchronized with.
962
962
other_size = Some ( atomic. size ) ;
963
- if let Some ( idx) = Self :: find_gt_index ( & atomic. write_vector , & current_clocks . clock )
963
+ if let Some ( idx) = Self :: find_gt_index ( & atomic. write_vector , & active_clocks . clock )
964
964
{
965
965
( AccessType :: AtomicStore , idx, & atomic. write_vector )
966
966
} else if let Some ( idx) =
967
- Self :: find_gt_index ( & atomic. read_vector , & current_clocks . clock )
967
+ Self :: find_gt_index ( & atomic. read_vector , & active_clocks . clock )
968
968
{
969
969
( AccessType :: AtomicLoad , idx, & atomic. read_vector )
970
970
} else {
@@ -977,7 +977,7 @@ impl VClockAlloc {
977
977
} ;
978
978
979
979
// Load elaborated thread information about the racing thread actions.
980
- let current_thread_info = global. print_thread_metadata ( thread_mgr, current_index ) ;
980
+ let active_thread_info = global. print_thread_metadata ( thread_mgr, active_index ) ;
981
981
let other_thread_info = global. print_thread_metadata ( thread_mgr, other_thread) ;
982
982
let involves_non_atomic = !access. is_atomic ( ) || !other_access. is_atomic ( ) ;
983
983
@@ -1005,8 +1005,8 @@ impl VClockAlloc {
1005
1005
} ,
1006
1006
op2: RacingOp {
1007
1007
action: access. description( ty, other_size. map( |_| access_size) ) ,
1008
- thread_info: current_thread_info ,
1009
- span: current_clocks . clock. as_slice( ) [ current_index . index( ) ] . span_data( ) ,
1008
+ thread_info: active_thread_info ,
1009
+ span: active_clocks . clock. as_slice( ) [ active_index . index( ) ] . span_data( ) ,
1010
1010
} ,
1011
1011
} ) ) ?
1012
1012
}
@@ -1028,7 +1028,7 @@ impl VClockAlloc {
1028
1028
let current_span = machine. current_span ( ) ;
1029
1029
let global = machine. data_race . as_ref ( ) . unwrap ( ) ;
1030
1030
if global. race_detecting ( ) {
1031
- let ( index, mut thread_clocks) = global. current_thread_state_mut ( & machine. threads ) ;
1031
+ let ( index, mut thread_clocks) = global. active_thread_state_mut ( & machine. threads ) ;
1032
1032
let mut alloc_ranges = self . alloc_ranges . borrow_mut ( ) ;
1033
1033
for ( mem_clocks_range, mem_clocks) in
1034
1034
alloc_ranges. iter_mut ( access_range. start , access_range. size )
@@ -1071,7 +1071,7 @@ impl VClockAlloc {
1071
1071
let current_span = machine. current_span ( ) ;
1072
1072
let global = machine. data_race . as_mut ( ) . unwrap ( ) ;
1073
1073
if global. race_detecting ( ) {
1074
- let ( index, mut thread_clocks) = global. current_thread_state_mut ( & machine. threads ) ;
1074
+ let ( index, mut thread_clocks) = global. active_thread_state_mut ( & machine. threads ) ;
1075
1075
for ( mem_clocks_range, mem_clocks) in
1076
1076
self . alloc_ranges . get_mut ( ) . iter_mut ( access_range. start , access_range. size )
1077
1077
{
@@ -1520,7 +1520,7 @@ impl GlobalState {
1520
1520
thread : ThreadId ,
1521
1521
current_span : Span ,
1522
1522
) {
1523
- let current_index = self . current_index ( thread_mgr) ;
1523
+ let current_index = self . active_thread_index ( thread_mgr) ;
1524
1524
1525
1525
// Enable multi-threaded execution, there are now at least two threads
1526
1526
// so data-races are now possible.
@@ -1644,7 +1644,7 @@ impl GlobalState {
1644
1644
/// `thread_joined`.
1645
1645
#[ inline]
1646
1646
pub fn thread_terminated ( & mut self , thread_mgr : & ThreadManager < ' _ , ' _ > , current_span : Span ) {
1647
- let current_index = self . current_index ( thread_mgr) ;
1647
+ let current_index = self . active_thread_index ( thread_mgr) ;
1648
1648
1649
1649
// Increment the clock to a unique termination timestamp.
1650
1650
let vector_clocks = self . vector_clocks . get_mut ( ) ;
@@ -1682,9 +1682,9 @@ impl GlobalState {
1682
1682
op : impl FnOnce ( VectorIdx , RefMut < ' _ , ThreadClockSet > ) -> InterpResult < ' tcx , bool > ,
1683
1683
) -> InterpResult < ' tcx > {
1684
1684
if self . multi_threaded . get ( ) {
1685
- let ( index, clocks) = self . current_thread_state_mut ( thread_mgr) ;
1685
+ let ( index, clocks) = self . active_thread_state_mut ( thread_mgr) ;
1686
1686
if op ( index, clocks) ? {
1687
- let ( _, mut clocks) = self . current_thread_state_mut ( thread_mgr) ;
1687
+ let ( _, mut clocks) = self . active_thread_state_mut ( thread_mgr) ;
1688
1688
clocks. increment_clock ( index, current_span) ;
1689
1689
}
1690
1690
}
@@ -1754,7 +1754,7 @@ impl GlobalState {
1754
1754
/// Load the current vector clock in use and the current set of thread clocks
1755
1755
/// in use for the vector.
1756
1756
#[ inline]
1757
- pub ( super ) fn current_thread_state (
1757
+ pub ( super ) fn active_thread_state (
1758
1758
& self ,
1759
1759
thread_mgr : & ThreadManager < ' _ , ' _ > ,
1760
1760
) -> ( VectorIdx , Ref < ' _ , ThreadClockSet > ) {
@@ -1764,7 +1764,7 @@ impl GlobalState {
1764
1764
/// Load the current vector clock in use and the current set of thread clocks
1765
1765
/// in use for the vector mutably for modification.
1766
1766
#[ inline]
1767
- pub ( super ) fn current_thread_state_mut (
1767
+ pub ( super ) fn active_thread_state_mut (
1768
1768
& self ,
1769
1769
thread_mgr : & ThreadManager < ' _ , ' _ > ,
1770
1770
) -> ( VectorIdx , RefMut < ' _ , ThreadClockSet > ) {
@@ -1774,20 +1774,20 @@ impl GlobalState {
1774
1774
/// Return the current thread, should be the same
1775
1775
/// as the data-race active thread.
1776
1776
#[ inline]
1777
- fn current_index ( & self , thread_mgr : & ThreadManager < ' _ , ' _ > ) -> VectorIdx {
1777
+ fn active_thread_index ( & self , thread_mgr : & ThreadManager < ' _ , ' _ > ) -> VectorIdx {
1778
1778
let active_thread_id = thread_mgr. get_active_thread_id ( ) ;
1779
1779
self . thread_index ( active_thread_id)
1780
1780
}
1781
1781
1782
1782
// SC ATOMIC STORE rule in the paper.
1783
1783
pub ( super ) fn sc_write ( & self , thread_mgr : & ThreadManager < ' _ , ' _ > ) {
1784
- let ( index, clocks) = self . current_thread_state ( thread_mgr) ;
1784
+ let ( index, clocks) = self . active_thread_state ( thread_mgr) ;
1785
1785
self . last_sc_write . borrow_mut ( ) . set_at_index ( & clocks. clock , index) ;
1786
1786
}
1787
1787
1788
1788
// SC ATOMIC READ rule in the paper.
1789
1789
pub ( super ) fn sc_read ( & self , thread_mgr : & ThreadManager < ' _ , ' _ > ) {
1790
- let ( .., mut clocks) = self . current_thread_state_mut ( thread_mgr) ;
1790
+ let ( .., mut clocks) = self . active_thread_state_mut ( thread_mgr) ;
1791
1791
clocks. read_seqcst . join ( & self . last_sc_fence . borrow ( ) ) ;
1792
1792
}
1793
1793
}
0 commit comments