From e638ce6397710da5f5f180dcf516eb1b1a6dc9a9 Mon Sep 17 00:00:00 2001
From: Joey Adams <joeyadams3.14159@gmail.com>
Date: Sun, 29 Jul 2012 21:23:18 -0400
Subject: [PATCH 2/3] TBQueue: Guard against negative maximum queue size (by replacing it with 0)

---
 Control/Concurrent/STM/TBQueue.hs |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Control/Concurrent/STM/TBQueue.hs b/Control/Concurrent/STM/TBQueue.hs
index 6f531c0..a3ff2da 100644
--- a/Control/Concurrent/STM/TBQueue.hs
+++ b/Control/Concurrent/STM/TBQueue.hs
@@ -77,7 +77,7 @@ newTBQueue size = do
   read  <- newTVar []
   write <- newTVar []
   rsize <- newTVar 0
-  wsize <- newTVar $! size
+  wsize <- newTVar $! if size < 0 then 0 else size
   return (TBQueue rsize read wsize write)
 
 -- |@IO@ version of 'newTBQueue'.  This is useful for creating top-level
@@ -89,7 +89,7 @@ newTBQueueIO size = do
   read  <- newTVarIO []
   write <- newTVarIO []
   rsize <- newTVarIO 0
-  wsize <- newTVarIO $! size
+  wsize <- newTVarIO $! if size < 0 then 0 else size
   return (TBQueue rsize read wsize write)
 
 -- |Write a value to a 'TBQueue'; blocks if the queue is full.
-- 
1.7.0.4

