packages feed

skylark-client 0.1.2 → 0.1.3

raw patch · 2 files changed

+15/−2 lines, 2 files

Files

skylark-client.cabal view
@@ -1,5 +1,5 @@ name:                  skylark-client-version:               0.1.2+version:               0.1.3 synopsis:              Skylark client. description:           Skylark network client. homepage:              https://github.com/githubuser/skylark-client#readme
src/Network/Skylark/Client.hs view
@@ -4,6 +4,7 @@  module Network.Skylark.Client   ( runSkylark+  , runSkylark'   ) where  import Control.Concurrent.Async.Lifted@@ -56,7 +57,7 @@     , requestBody = requestBodySourceChunked $ sourceTBQueue queue     } --- | Run Skylark client.+-- | Run Skylark client with connections concurrent. -- runSkylark :: MonadControl m => String -> ByteString -> Source m ByteString -> Sink ByteString m () -> m () runSkylark url device source sink = do@@ -67,3 +68,15 @@   void $ concurrently     (concurrently (download device manager request downQueue) (sourceTBQueue downQueue $$ sink))     (concurrently (source $$ sinkTBQueue upQueue) (upload device manager request upQueue))++-- | Run Skylark client with connections racing.+--+runSkylark' :: MonadControl m => String -> ByteString -> Source m ByteString -> Sink ByteString m () -> m ()+runSkylark' url device source sink = do+  manager   <- liftIO $ newManager tlsManagerSettings+  request   <- parseRequest url+  upQueue   <- liftIO $ atomically $ newTBQueue 8192+  downQueue <- liftIO $ atomically $ newTBQueue 8192+  race_+    (race_ (download device manager request downQueue) (sourceTBQueue downQueue $$ sink))+    (race_ (source $$ sinkTBQueue upQueue) (upload device manager request upQueue))