Bryan O'Sullivan avatar Bryan O'Sullivan committed 96f9fde

Don't try to send anything if we have no requests to send.

If we try sending an empty bytestring, the low-level writev system call will
throw an exception.

Comments (0)

Files changed (1)

src/Network/Riak/Connection/Internal.hs

 
 pipe :: (Request req, Show resp) =>
         (Connection -> IO resp) -> Connection -> [req] -> IO [resp]
+pipe _ _ [] = return []
 pipe receive conn@Connection{..} reqs = do
   ch <- newChan
   let numReqs = length reqs
 -- sending and receiving will be overlapped if possible, to improve
 -- concurrency and reduce latency.
 pipeline_ :: (Request req) => Connection -> [req] -> IO ()
+pipeline_ _ [] = return ()
 pipeline_ conn@Connection{..} reqs = do
   done <- newEmptyMVar
   _ <- forkIO $ do
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.