| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
System.Socket.Unsafe
Contents
- 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
Arguments
| :: 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