From dff62c19cef2eb12fac3d15552a98886edcaba44 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Fri, 5 Aug 2016 19:26:23 +0100 Subject: [PATCH] Handle RwLock reader count overflow --- src/libstd/sys/unix/rwlock.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libstd/sys/unix/rwlock.rs b/src/libstd/sys/unix/rwlock.rs index fbd4e1d120817..08aeb5fb8ccde 100644 --- a/src/libstd/sys/unix/rwlock.rs +++ b/src/libstd/sys/unix/rwlock.rs @@ -50,7 +50,9 @@ impl RWLock { // the implementation allows recursive locking. The POSIX standard // doesn't require recursivly locking a rwlock to deadlock, but we can't // allow that because it could lead to aliasing issues. - if r == libc::EDEADLK || *self.write_locked.get() { + if r == libc::EAGAIN { + panic!("rwlock maximum reader count exceeded"); + } else if r == libc::EDEADLK || *self.write_locked.get() { if r == 0 { self.raw_unlock(); }