Git Product home page Git Product logo

Comments (5)

tarcieri avatar tarcieri commented on May 21, 2024 1

Hierarchical selectors should be supportable with nio4r (both libev + Java NIO backends) but not necessarily tested yet

from async.

ioquatix avatar ioquatix commented on May 21, 2024

That's interesting - how would that work?

The problem right now is implementing a function like this:

def run_server
    Reactor.run do
        TCPServer...
    end
end

Reactor.run
    #... nested function calls
        run_server
end

The idea being that you don't need to know how run_server is implemented, but within an existing reactor it's asynchronous. The benefits of this are composability - if you simply call run_server, it will work and block while it's working - use it from your top level script, or from a function, or whever, and it just works. But, if you drop it into a run-loop, it works async and doesn't block anything else.

from async.

tarcieri avatar tarcieri commented on May 21, 2024

You can add one selector to another as if it were any other selectable type. Hierarchical selectors are supported natively by various OS APIs such as epoll and kqueue.

from async.

ioquatix avatar ioquatix commented on May 21, 2024

That's awesome - but in order for that to work, we'd also need to support timers?

But I think it's an interesting idea to support in nio4r. Right now, it's not needed to achieve what I want here, I think I can just use the existing reactor if it's available.

from async.

ioquatix avatar ioquatix commented on May 21, 2024

Tasks are now nested using a tree structure.

from async.

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.