Skip to content

Commit f280e7e

Browse files
committed
Auto merge of #1433 - RalfJung:condattr-setclock, r=RalfJung
macOS does not have pthread_condattr_setclock/getclock
2 parents bfe030d + 9ff77f6 commit f280e7e

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

src/shims/foreign_items/posix.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -335,16 +335,6 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
335335
let result = this.pthread_condattr_init(attr)?;
336336
this.write_scalar(Scalar::from_i32(result), dest)?;
337337
}
338-
"pthread_condattr_setclock" => {
339-
let &[attr, clock_id] = check_arg_count(args)?;
340-
let result = this.pthread_condattr_setclock(attr, clock_id)?;
341-
this.write_scalar(Scalar::from_i32(result), dest)?;
342-
}
343-
"pthread_condattr_getclock" => {
344-
let &[attr, clock_id] = check_arg_count(args)?;
345-
let result = this.pthread_condattr_getclock(attr, clock_id)?;
346-
this.write_scalar(Scalar::from_i32(result), dest)?;
347-
}
348338
"pthread_condattr_destroy" => {
349339
let &[attr] = check_arg_count(args)?;
350340
let result = this.pthread_condattr_destroy(attr)?;

src/shims/foreign_items/posix/linux.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,16 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
9090
let result = this.prctl(option, arg2, arg3, arg4, arg5)?;
9191
this.write_scalar(Scalar::from_i32(result), dest)?;
9292
}
93+
"pthread_condattr_setclock" => {
94+
let &[attr, clock_id] = check_arg_count(args)?;
95+
let result = this.pthread_condattr_setclock(attr, clock_id)?;
96+
this.write_scalar(Scalar::from_i32(result), dest)?;
97+
}
98+
"pthread_condattr_getclock" => {
99+
let &[attr, clock_id] = check_arg_count(args)?;
100+
let result = this.pthread_condattr_getclock(attr, clock_id)?;
101+
this.write_scalar(Scalar::from_i32(result), dest)?;
102+
}
93103

94104
// Dynamically invoked syscalls
95105
"syscall" => {

src/sync.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
238238
match this.machine.threads.sync.rwlocks[id].readers.entry(reader) {
239239
Entry::Occupied(mut entry) => {
240240
let count = entry.get_mut();
241+
assert!(*count > 0, "rwlock locked with count == 0");
241242
*count -= 1;
242243
if *count == 0 {
243244
entry.remove();

0 commit comments

Comments
 (0)