summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sched.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sched.rs b/src/sched.rs
index 4af33203..66b4ed4f 100644
--- a/src/sched.rs
+++ b/src/sched.rs
@@ -114,8 +114,9 @@ pub fn clone(mut cb: CloneCb,
let res = unsafe {
let combined = flags.bits() | signal.unwrap_or(0);
let ptr = stack.as_mut_ptr().offset(stack.len() as isize);
+ let ptr_aligned = ptr.offset((ptr as usize % 16) as isize * -1);
ffi::clone(mem::transmute(callback as extern "C" fn(*mut Box<::std::ops::FnMut() -> isize>) -> i32),
- ptr as *mut c_void,
+ ptr_aligned as *mut c_void,
combined,
&mut cb)
};