Safe Haskell | None |
---|---|
Language | Haskell2010 |
- unsafeSend :: Socket a t p -> Ptr a -> CSize -> MessageFlags -> IO CInt
- unsafeSendTo :: Socket f t p -> Ptr b -> CSize -> MessageFlags -> Ptr (SocketAddress f) -> CInt -> IO CInt
- unsafeReceive :: Socket a t p -> Ptr b -> CSize -> MessageFlags -> IO CInt
- unsafeReceiveFrom :: Socket f t p -> Ptr b -> CSize -> MessageFlags -> Ptr (SocketAddress f) -> Ptr CInt -> IO CInt
- unsafeGetSocketOption :: Storable a => Socket f t p -> CInt -> CInt -> IO a
- unsafeSetSocketOption :: Storable a => Socket f t p -> CInt -> CInt -> a -> IO ()
- unsafeSocketWaitRead :: Fd -> Int -> IO (IO ())
- unsafeSocketWaitWrite :: Fd -> Int -> IO (IO ())
- tryWaitRetryLoop :: Socket f t p -> (Fd -> Int -> IO (IO ())) -> (Fd -> IO CInt) -> IO CInt
unsafeSend
unsafeSend :: Socket a t p -> Ptr a -> CSize -> MessageFlags -> IO CInt Source
unsafeSendTo
unsafeSendTo :: Socket f t p -> Ptr b -> CSize -> MessageFlags -> Ptr (SocketAddress f) -> CInt -> IO CInt Source
unsafeReceive
unsafeReceive :: Socket a t p -> Ptr b -> CSize -> MessageFlags -> IO CInt Source
unsafeReceiveFrom
unsafeReceiveFrom :: Socket f t p -> Ptr b -> CSize -> MessageFlags -> Ptr (SocketAddress f) -> Ptr CInt -> IO CInt Source
Socket Options
unsafeGetSocketOption
unsafeSetSocketOption
Waiting For Events
unsafeSocketWaitRead
:: Fd | Socket descriptor |
-> Int | How many times has it been tried unsuccessfully so far? (currently only relevant on Windows) |
-> IO (IO ()) | The outer action registers the waiting, the inner does the actual wait. |
Blocks until a socket should be tried for reading.
safeSocketWaitRead = do wait <- withMVar msock $ \sock-> do -- Register while holding a lock on the socket descriptor. unsafeSocketWaitRead sock 0 -- Do the waiting without keeping the socket descriptor locked. wait