úΕ% Safe-InferedJThe numeric type to recommend chunk sizes for moving data between sockets : used by both zero-copy and portable implementations of . Indicates whether 2 uses zero-copy system calls or the portable user ! space Haskell implementation. ,Pipes data from one socket to another in an  infinite loop. $ currently has two implementations:  on GNU/ Linux using fdSplice "E  A splice len (sIn, _ ) (sOut, _ ) = ... fdSplice ...  %on all other operating systems using  "E  A splice len (_ , Just hIn) (_ , Just hOut) = ... hSplice ...  Notes  fdSplice and fdSplice implementation of  are only available  on GNU/Linux.   is always available and the  implementation of   can be forced on GNU/Linux by defining the portable flag at  compile time.  $ implementation requires handles in  mode.  @ is a terminal loop on two sockets and once entered its sockets B and handles cannot be interleaved by other IO operations. The portable Haskell loop.   allocates a single% memory buffer in user address space 0 uses it until the loop terminates by exception  frees the buffer and returns  Notes * the socket handles are required to be in  mode.  Similar to $ but used when an obvious exception 1 is expected and can be handled easily. Unlike  exceptions are  NOT rethrown once handled.  Similar to $ but used when an obvious exception , is expected which can be safely ignored. True if 0 uses zero-copy system calls; otherwise, false. maximal chunk size. .source socket and possibly its opened handle. .target socket and possibly its opened handle. infinite loop. exception handler. action to run which can throw any exception. Cnew action where all exceptions are handled by the single handler. action to run which can throw any exception. *new action where exceptions are silenced.  Safe-Infered    splice-0.6.1Network.Socket.SpliceNetwork.Socket.Splice.InternalControl.Exception.Basetry ChunkSizezeroCopysplicehSplicetryWithtry_baseGHC.IO.Handle.Types NoBufferingfinally