diff options
Diffstat (limited to 'xmake/core/base/socket.lua')
| -rw-r--r-- | xmake/core/base/socket.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/xmake/core/base/socket.lua b/xmake/core/base/socket.lua index 4a2dfdcdc..6a92d802f 100644 --- a/xmake/core/base/socket.lua +++ b/xmake/core/base/socket.lua @@ -20,6 +20,7 @@ -- define module local socket = socket or {} +local _poller = _poller or {} local _instance = _instance or {} -- load modules @@ -519,6 +520,45 @@ function _instance:__gc() end end +-- insert socket events to poller +function _poller:insert(sock, events) + + -- ensure opened + local ok, errors = sock:_ensure_opened() + if not ok then + return false, errors + end + + -- insert it + return io.poller_insert(sock._SOCK, events) +end + +-- modify socket events in poller +function _poller:modify(sock, events) + + -- ensure opened + local ok, errors = sock:_ensure_opened() + if not ok then + return false, errors + end + + -- modify it + return io.poller_modify(sock._SOCK, events) +end + +-- remove socket from poller +function _poller:remove(sock) + + -- ensure opened + local ok, errors = sock:_ensure_opened() + if not ok then + return false, errors + end + + -- remove it + return io.poller_remove(sock._SOCK) +end + -- open a socket -- -- @param socktype the socket type, e.g. tcp, udp, icmp |
