add socket:recv_async
This commit is contained in:
parent
637896fb0f
commit
062188ede7
@ -39,6 +39,16 @@ end
|
|||||||
local Socket = {__index={
|
local Socket = {__index={
|
||||||
send=function(self, ...) return network.__send(self.id, ...) end,
|
send=function(self, ...) return network.__send(self.id, ...) end,
|
||||||
recv=function(self, ...) return network.__recv(self.id, ...) end,
|
recv=function(self, ...) return network.__recv(self.id, ...) end,
|
||||||
|
recv_async=function(self, length, usetable)
|
||||||
|
while self:is_alive() do
|
||||||
|
local available = self:available()
|
||||||
|
if available >= length then
|
||||||
|
return self:recv(length, usetable)
|
||||||
|
end
|
||||||
|
coroutine.yield()
|
||||||
|
end
|
||||||
|
return self:recv(length, usetable)
|
||||||
|
end,
|
||||||
close=function(self) return network.__close(self.id) end,
|
close=function(self) return network.__close(self.id) end,
|
||||||
available=function(self) return network.__available(self.id) or 0 end,
|
available=function(self) return network.__available(self.id) or 0 end,
|
||||||
is_alive=function(self) return network.__is_alive(self.id) end,
|
is_alive=function(self) return network.__is_alive(self.id) end,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user