GithubHelp home page GithubHelp logo

blinds's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

blinds's Issues

Examples for custom async

Moving this topic from ryanisaacg/quicksilver#552

Its seems pretty straightforward to make an async call (like, by using platter.load_file), await that call (blocking the application loop) and resume the program execution upon the completion of the call. This will work for situations like loading game initialization data, and may be acceptable in some situations like switching "levels".

However, what's not clear is how to setup custom non-blocking events. Something that feels like

  • Initialize my own custom event stream with a custom type
  • Setup async tasks, registered to the custom event stream which, upon completion, enqueues the task output as a custom event
  • During each "big loop"
    • Poll the blinds EventStream for window events until exhausted
    • Poll the custom event stream for custom events until exhausted
    • Run my main logic
      • Drawing
      • Triggering more async tasks, similarly registered to the custom event stream

I think that this would cover things like sockets/websockets (I have a long-lived connection to the server) as well as remote procedure calls and non-blocking resource loading.

Support for multi-threaded desktop async executors

It may be possible for blinds to support multithreading on desktop execution, which would allow background execution of tasks. This may make integrating with the winit event loop more complicated, though.

Make events model more forward-compatible

Technically adding an event is a breaking change, as is adding any information to the events themselves. Event variants that contain opaque structs should be more resilient and allow non-breaking changes.

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.