summaryrefslogtreecommitdiffstats
path: root/src/doc/nomicon/src/send-and-sync.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/nomicon/src/send-and-sync.md')
-rw-r--r--src/doc/nomicon/src/send-and-sync.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/doc/nomicon/src/send-and-sync.md b/src/doc/nomicon/src/send-and-sync.md
index 34539daa3..808a5c3ae 100644
--- a/src/doc/nomicon/src/send-and-sync.md
+++ b/src/doc/nomicon/src/send-and-sync.md
@@ -94,6 +94,7 @@ to the heap.
use std::{
mem::{align_of, size_of},
ptr,
+ cmp::max,
};
struct Carton<T>(ptr::NonNull<T>);
@@ -105,8 +106,8 @@ impl<T> Carton<T> {
let mut memptr: *mut T = ptr::null_mut();
unsafe {
let ret = libc::posix_memalign(
- (&mut memptr).cast(),
- align_of::<T>(),
+ (&mut memptr as *mut *mut T).cast(),
+ max(align_of::<T>(), size_of::<usize>()),
size_of::<T>()
);
assert_eq!(ret, 0, "Failed to allocate or invalid alignment");