1 IN: io.servers.datagram
5 LOG: received-datagram NOTICE
7 : datagram-loop ( quot datagram -- )
9 [ receive dup received-datagram [ swap call ] dip ] keep
10 pick [ send ] [ 3drop ] if
11 ] 2keep datagram-loop ; inline
13 : spawn-datagrams ( quot addrspec -- )
14 <datagram> [ datagram-loop ] with-disposal ; inline
16 \ spawn-datagrams NOTICE add-input-logging
20 : with-datagrams ( seq service quot -- )
21 '[ [ [ _ ] dip spawn-datagrams ] parallel-each ] with-logging ; inline