summaryrefslogtreecommitdiff
path: root/dht
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-12-18 14:26:24 -0500
committerJoe Crayne <joe@jerkface.net>2020-01-01 23:27:11 -0500
commit0e62e21f78996422c644e2c559b4119a4463f391 (patch)
tree8f45773271b9a6bf368caf52f66e596dad90e67d /dht
parent2425c1a5df23d7051461d8f9fd32b5d5aa03e104 (diff)
QueryResponse: Generalized partitionTransport.
Diffstat (limited to 'dht')
-rw-r--r--dht/src/Network/QueryResponse.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/dht/src/Network/QueryResponse.hs b/dht/src/Network/QueryResponse.hs
index 8e32899f..1bfa995f 100644
--- a/dht/src/Network/QueryResponse.hs
+++ b/dht/src/Network/QueryResponse.hs
@@ -122,9 +122,9 @@ layerTransport parse encode tr =
122-- is used to share the same underlying socket, so be sure to fork a thread for 122-- is used to share the same underlying socket, so be sure to fork a thread for
123-- both returned 'Transport's to avoid hanging. 123-- both returned 'Transport's to avoid hanging.
124partitionTransportM :: ((b,a) -> IO (Either (x,xaddr) (b,a))) 124partitionTransportM :: ((b,a) -> IO (Either (x,xaddr) (b,a)))
125 -> ((x,xaddr) -> IO (Maybe (c,a))) 125 -> ((y,xaddr) -> IO (Maybe (c,a)))
126 -> TransportA err a b c 126 -> TransportA err a b c
127 -> IO (Transport err xaddr x, TransportA err a b c) 127 -> IO (TransportA err xaddr x y, TransportA err a b c)
128partitionTransportM parse encodex tr = do 128partitionTransportM parse encodex tr = do
129 tchan <- atomically newTChan 129 tchan <- atomically newTChan
130 let ytr = tr { awaitMessage = \kont -> fix $ \again -> do 130 let ytr = tr { awaitMessage = \kont -> fix $ \again -> do
@@ -151,9 +151,9 @@ partitionTransportM parse encodex tr = do
151-- is used to share the same underlying socket, so be sure to fork a thread for 151-- is used to share the same underlying socket, so be sure to fork a thread for
152-- both returned 'Transport's to avoid hanging. 152-- both returned 'Transport's to avoid hanging.
153partitionTransport :: ((b,a) -> Either (x,xaddr) (b,a)) 153partitionTransport :: ((b,a) -> Either (x,xaddr) (b,a))
154 -> ((x,xaddr) -> Maybe (b,a)) 154 -> ((y,xaddr) -> Maybe (c,a))
155 -> Transport err a b 155 -> TransportA err a b c
156 -> IO (Transport err xaddr x, Transport err a b) 156 -> IO (TransportA err xaddr x y, TransportA err a b c)
157partitionTransport parse encodex tr = 157partitionTransport parse encodex tr =
158 partitionTransportM (return . parse) (return . encodex) tr 158 partitionTransportM (return . parse) (return . encodex) tr
159 159