@@ -753,8 +753,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
753753 fn pthread_cond_signal ( & mut self , cond_op : & OpTy < ' tcx , Tag > ) -> InterpResult < ' tcx , i32 > {
754754 let this = self . eval_context_mut ( ) ;
755755 let id = cond_get_or_create_id ( this, cond_op) ?;
756- if let Some ( ( thread, mutex) ) = this. condvar_signal ( id) {
757- post_cond_signal ( this, thread, mutex) ?;
756+ if let Some ( ( thread, mutex, _ ) ) = this. condvar_signal ( id) {
757+ post_cond_signal ( this, thread, MutexId :: from_u32 ( mutex) ) ?;
758758 }
759759
760760 Ok ( 0 )
@@ -764,8 +764,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
764764 let this = self . eval_context_mut ( ) ;
765765 let id = cond_get_or_create_id ( this, cond_op) ?;
766766
767- while let Some ( ( thread, mutex) ) = this. condvar_signal ( id) {
768- post_cond_signal ( this, thread, mutex) ?;
767+ while let Some ( ( thread, mutex, _ ) ) = this. condvar_signal ( id) {
768+ post_cond_signal ( this, thread, MutexId :: from_u32 ( mutex) ) ?;
769769 }
770770
771771 Ok ( 0 )
@@ -783,7 +783,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
783783 let active_thread = this. get_active_thread ( ) ;
784784
785785 release_cond_mutex_and_block ( this, active_thread, mutex_id) ?;
786- this. condvar_wait ( id, active_thread, mutex_id) ;
786+ this. condvar_wait ( id, active_thread, mutex_id. to_u32 ( ) , false ) ;
787787
788788 Ok ( 0 )
789789 }
@@ -823,7 +823,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
823823 } ;
824824
825825 release_cond_mutex_and_block ( this, active_thread, mutex_id) ?;
826- this. condvar_wait ( id, active_thread, mutex_id) ;
826+ this. condvar_wait ( id, active_thread, mutex_id. to_u32 ( ) , false ) ;
827827
828828 // We return success for now and override it in the timeout callback.
829829 this. write_scalar ( Scalar :: from_i32 ( 0 ) , dest) ?;
0 commit comments