[PATCH 1/3] socket: evaluate buffer size in recv / recvfrom

Alexander Turenko alexander.turenko at tarantool.org
Mon Aug 27 03:08:49 MSK 2018


On Fri, Aug 24, 2018 at 06:25:42PM +0300, Vladimir Davydov wrote:
> On Fri, Aug 24, 2018 at 05:47:37AM +0300, Alexander Turenko wrote:
> > diff --git a/src/lua/socket.lua b/src/lua/socket.lua
> > index 06306eae2..946e11e9e 100644
> > --- a/src/lua/socket.lua
> > +++ b/src/lua/socket.lua
> > @@ -770,6 +770,41 @@ local function socket_send(self, octets, flags)
> >      return tonumber(res)
> >  end
> >  
> > +local function socket_is_udp(self)
> > +    local fd = check_socket(self)
> > +    if self.itype == nil then
> > +        self.itype = self:getsockopt('SOL_SOCKET', 'SO_TYPE')
> 
> I think you could instead set itype in socket constructor.
> 

That will increase memory consumption in case when it is not needed to
know itype: say, for sending sockets (I should add comment about this,
of course). However I think it is worth to cache it when revc / recvfrom
is used intensively to avoid extra syscall.

Do you think we can ignore extra memory comsumption in this case?

WBR, Alexander Turenko.



More information about the Tarantool-patches mailing list