From: Brendan Hansen Date: Mon, 5 Jun 2023 15:58:55 +0000 (-0500) Subject: added: `net.socket_poll` X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=cc7bb8b8958975d2d8f7c198874d641fda506349;p=onyx.git added: `net.socket_poll` --- diff --git a/core/net/net.onyx b/core/net/net.onyx index 601463b0..0cc0f6e8 100644 --- a/core/net/net.onyx +++ b/core/net/net.onyx @@ -32,6 +32,7 @@ Socket :: struct { recv :: socket_recv recv_into :: socket_recv_into recvfrom :: socket_recvfrom + poll :: socket_poll } SocketError :: enum { @@ -187,6 +188,16 @@ socket_poll_all :: (sockets: [] &Socket, timeout := -1, stat_buff: [] Socket_Pol __net_poll_recv(handles, timeout, stat_buff.data); } +socket_poll :: (socket: &Socket, timeout := -1) -> Socket_Poll_Status { + handles := alloc.array_from_stack(Socket.Handle, 1); + handles[0] = socket.handle; + + stat: Socket_Poll_Status; + __net_poll_recv(handles, timeout, &stat); + + return stat; +} + socket_send :: (s: &Socket, data: [] u8) -> i32 { sent := __net_send(s.handle, data); if sent < 0 { s.vtable = null; }