mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 20:23:06 +00:00
Overload socket_read(), See #1750
This commit is contained in:
@@ -41,7 +41,17 @@ function socket_channel.channel(desc)
|
|||||||
__nodelay = desc.nodelay,
|
__nodelay = desc.nodelay,
|
||||||
__overload_notify = desc.overload,
|
__overload_notify = desc.overload,
|
||||||
__overload = false,
|
__overload = false,
|
||||||
|
__socket_meta = channel_socket_meta,
|
||||||
}
|
}
|
||||||
|
if desc.socket_read or desc.socket_readline then
|
||||||
|
c.__socket_meta = {
|
||||||
|
__index = {
|
||||||
|
read = desc.socket_read or channel_socket.read,
|
||||||
|
readline = desc.socket_readline or channel_socket.readline,
|
||||||
|
},
|
||||||
|
__gc = channel_socket_meta.__gc
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
return setmetatable(c, channel_meta)
|
return setmetatable(c, channel_meta)
|
||||||
end
|
end
|
||||||
@@ -319,7 +329,7 @@ local function connect_once(self)
|
|||||||
skynet.yield()
|
skynet.yield()
|
||||||
end
|
end
|
||||||
|
|
||||||
self.__sock = setmetatable( {fd} , channel_socket_meta )
|
self.__sock = setmetatable( {fd} , self.__socket_meta )
|
||||||
self.__dispatch_thread = skynet.fork(function()
|
self.__dispatch_thread = skynet.fork(function()
|
||||||
if self.__sock then
|
if self.__sock then
|
||||||
-- self.__sock can be false (socket closed) if error during connecting, See #1513
|
-- self.__sock can be false (socket closed) if error during connecting, See #1513
|
||||||
|
|||||||
Reference in New Issue
Block a user