about summary refs log tree commit diff
path: root/src/libsync
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-11-02 21:22:14 +0000
committerbors <bors@rust-lang.org>2014-11-02 21:22:14 +0000
commita294b35060e069007ee46e190a6f0a19fa3eaab8 (patch)
tree4201a43fec3a750a6fb28e1fa67beddf7a3b249c /src/libsync
parent0c1268451b1f51fdaa31938707df8c56f08cfb31 (diff)
parentfea985a0b5008bc2f441866a80c0e3a16592eaab (diff)
downloadrust-a294b35060e069007ee46e190a6f0a19fa3eaab8.tar.gz
rust-a294b35060e069007ee46e190a6f0a19fa3eaab8.zip
auto merge of #18406 : thestinger/rust/oom, r=cmr
This makes the low-level allocation API suitable for use cases where
out-of-memory conditions need to be handled.

Closes #18292

[breaking-change]
Diffstat (limited to 'src/libsync')
-rw-r--r--src/libsync/deque.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libsync/deque.rs b/src/libsync/deque.rs
index 11b8b974dcf..ae55642672d 100644
--- a/src/libsync/deque.rs
+++ b/src/libsync/deque.rs
@@ -353,6 +353,7 @@ impl<T: Send> Buffer<T> {
     unsafe fn new(log_size: uint) -> Buffer<T> {
         let size = buffer_alloc_size::<T>(log_size);
         let buffer = allocate(size, min_align_of::<T>());
+        if buffer.is_null() { ::alloc::oom() }
         Buffer {
             storage: buffer as *const T,
             log_size: log_size,