Giter Club home page Giter Club logo

Comments (6)

imzyxwvu avatar imzyxwvu commented on May 25, 2024

This is a bare binding. And all handles except reqs use the same metatable.

from luv.

creationix avatar creationix commented on May 25, 2024

This is a bare binding, but I think this particular sugar is low enough
overhead to be worth it. It does provide value in structural typing that
is not available through the C style interface.

On Wed, Nov 5, 2014 at 7:10 PM, imzyxwvu [email protected] wrote:

This is a bare binding. And all APIs use the same metatable.


Reply to this email directly or view it on GitHub
#88 (comment).

from luv.

imzyxwvu avatar imzyxwvu commented on May 25, 2024

This sugar is easy to be achieved by setting the uv table as the __index of the handle metatable. But it won't be server:bind. It will be server:tcp_bind instead because the uv table is all the APIs instead of a subset. Because there is only one metatable we cannot set it a subset for every kind of handle.

I came up with a workaround just now: we can add another sugar uv.bind. It checks the handle type and automatically selects luv_tcp_bind, luv_udp_bind or etc.

from luv.

bjorn avatar bjorn commented on May 25, 2024

I came up with a workaround just now: we can add another sugar uv.bind. It checks the handle type and automatically selects luv_tcp_bind, luv_udp_bind or etc.

Well, that would introduce additional overhead. But I think anyway the planned implementation would be to have separate userdata and metatables for each handle type. The member functions in the __index hook would then of course be shortened as appropriate.

from luv.

imzyxwvu avatar imzyxwvu commented on May 25, 2024

Well, that would introduce additional overhead. But I think anyway the planned implementation would be to have separate userdata and metatables for each handle type. The member functions in the __index hook would then of course be shortened as appropriate.

It is because some handles are in different types, but they share some APIs. For example, TTY, TCP and Pipe are different types, but they share uv.read, uv.write and etc.

In fact checking handle type by (uv_handle_t*)->type is really a simple job. It won't introduce additional overhead.

from luv.

creationix avatar creationix commented on May 25, 2024

Implemented in #96

from luv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.