diff options
author | Bin Jin <bjin@ctrl-d.org> | 2017-03-16 00:26:40 +0800 |
---|---|---|
committer | Bin Jin <bjin@ctrl-d.org> | 2017-03-16 00:26:40 +0800 |
commit | 72ce5a8715976ec5eccedab0552fc7d9233903c1 (patch) | |
tree | b88f568383bdd1c20b0e3ed7a1df0da12e939596 /src/Network/WireGuard/TunListener.hs | |
parent | Disable multi-threading for now (diff) | |
download | wireguard-hs-72ce5a8715976ec5eccedab0552fc7d9233903c1.tar.xz wireguard-hs-72ce5a8715976ec5eccedab0552fc7d9233903c1.zip |
remove STM packet queue
Diffstat (limited to 'src/Network/WireGuard/TunListener.hs')
-rw-r--r-- | src/Network/WireGuard/TunListener.hs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/Network/WireGuard/TunListener.hs b/src/Network/WireGuard/TunListener.hs index 8e058df..f5628e5 100644 --- a/src/Network/WireGuard/TunListener.hs +++ b/src/Network/WireGuard/TunListener.hs @@ -4,7 +4,6 @@ module Network.WireGuard.TunListener import Control.Concurrent.Async (wait, withAsync) import Control.Monad (forever, void) -import Control.Monad.STM (atomically) import qualified Data.ByteArray as BA import Data.Word (Word8) import Foreign.Marshal.Alloc (allocaBytes) @@ -29,12 +28,11 @@ runTunListener fds readTunChan writeTunChan = loop fds [] handleRead :: PacketQueue (Time, TunPacket) -> Fd -> IO () handleRead readTunChan fd = allocaBytes tunReadBufferLength $ \buf -> - forever (((,) <$> epochTime <*> readTun buf fd) - >>= atomically . pushPacketQueue readTunChan) + forever (((,) <$> epochTime <*> readTun buf fd) >>= pushPacketQueue readTunChan) handleWrite :: PacketQueue TunPacket -> Fd -> IO () handleWrite writeTunChan fd = - forever (atomically (popPacketQueue writeTunChan) >>= writeTun fd) + forever (popPacketQueue writeTunChan >>= writeTun fd) readTun :: BA.ByteArray ba => Ptr Word8 -> Fd -> IO ba readTun buf fd = do |