1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 14:21:31 +03:00

Merge branch 'master' into tableofcontentsby-bugfix

This commit is contained in:
Ayman Nadeem 2017-10-10 12:40:02 -07:00
commit 819d86d2ec
2 changed files with 7 additions and 1 deletions

View File

@ -14,6 +14,7 @@ module Semantic.Stat
-- Client
, defaultStatsClient
, StatsClient(..)
, closeStatClient
-- Internal, exposed for testing
, renderDatagram
@ -26,7 +27,7 @@ import Data.List (intercalate)
import Data.List.Split (splitOneOf)
import Data.Maybe
import Data.Monoid
import Network.Socket (Socket(..), SocketType(..), socket, connect, getAddrInfo, addrFamily, addrAddress, defaultProtocol)
import Network.Socket (Socket(..), SocketType(..), socket, connect, close, getAddrInfo, addrFamily, addrAddress, defaultProtocol)
import Network.Socket.ByteString
import Network.URI
import Numeric
@ -138,6 +139,10 @@ statsClient host port statsClientNamespace = do
connect sock (addrAddress addr)
pure (StatsClient sock statsClientNamespace host port)
-- | Close the client's underlying socket.
closeStatClient :: StatsClient -> IO ()
closeStatClient StatsClient{..} = close statsClientUDPSocket
-- | Send a stat over the StatsClient's socket.
sendStat :: StatsClient -> Stat -> IO ()
sendStat StatsClient{..} = void . tryIOError . sendAll statsClientUDPSocket . B.pack . renderDatagram statsClientNamespace

View File

@ -162,6 +162,7 @@ runTaskWithOptions options task = do
run options logger statter task
closeQueue statter
closeStatClient (asyncQueueExtra statter)
closeQueue logger
either (die . displayException) pure result
where