aboutsummaryrefslogtreecommitdiffstats
path: root/src/Network/WireGuard/Internal/PacketQueue.hs
blob: 2840a7361654ceb342f01e05ef3cb39b31ce1e85 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module Network.WireGuard.Internal.PacketQueue
  ( PacketQueue
  , newPacketQueue
  , popPacketQueue
  , pushPacketQueue
  , module Control.Concurrent.Chan
  ) where

import           Control.Concurrent.Chan

type PacketQueue packet = Chan packet

newPacketQueue :: IO (PacketQueue packet)
newPacketQueue = newChan

popPacketQueue :: PacketQueue packet -> IO packet
popPacketQueue = readChan

pushPacketQueue :: PacketQueue packet -> packet -> IO ()
pushPacketQueue = writeChan