diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-04-10 22:38:05 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-04-10 22:38:05 -0700 |
| commit | 11c9871bcc34f5f0ed3ba92a1cc5629b9ffe422e (patch) | |
| tree | f208b731aace8c98dbe0dc599627e4300ceb2f00 | |
| parent | 0156af156d70efd5a3c96d0c5b8fc9bec39a7ae5 (diff) | |
| download | rust-11c9871bcc34f5f0ed3ba92a1cc5629b9ffe422e.tar.gz rust-11c9871bcc34f5f0ed3ba92a1cc5629b9ffe422e.zip | |
std: Be sure to call pthread_attr_destroy
On some OSes (such as freebsd), pthread_attr_init allocates memory, so this is necessary to deallocate that memory. Closes #13420
| -rw-r--r-- | src/libstd/rt/thread.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libstd/rt/thread.rs b/src/libstd/rt/thread.rs index b1c7c5aab02..4aa85bc4c72 100644 --- a/src/libstd/rt/thread.rs +++ b/src/libstd/rt/thread.rs @@ -245,6 +245,7 @@ mod imp { let arg: *libc::c_void = cast::transmute(p); assert_eq!(pthread_create(&mut native, &attr, super::thread_start, arg), 0); + assert_eq!(pthread_attr_destroy(&mut attr), 0); native } @@ -303,6 +304,7 @@ mod imp { fn pthread_join(native: libc::pthread_t, value: **libc::c_void) -> libc::c_int; fn pthread_attr_init(attr: *mut libc::pthread_attr_t) -> libc::c_int; + fn pthread_attr_destroy(attr: *mut libc::pthread_attr_t) -> libc::c_int; fn pthread_attr_setstacksize(attr: *mut libc::pthread_attr_t, stack_size: libc::size_t) -> libc::c_int; fn pthread_attr_setdetachstate(attr: *mut libc::pthread_attr_t, |
