Coder Social home page Coder Social logo

Comments (2)

rannn505 avatar rannn505 commented on June 10, 2024

Hey @mattflix,

You are right about cleaning up the array of commands and in the next version I will clean it immediately after receiving the confirmation that it has passed to the PS treatment.

With regard to race condition, the library is based on promises and therefore, using the existing API, it is very easy to avoid the situation you described.

Thank you very much for turning my attention. 💯 👍

from child-shell.

mattflix avatar mattflix commented on June 10, 2024

Yes, it is not very "difficult" to avoid the race, but the race is created entirely by the design of the existing API.

Due the current API, every library client must:
a) first be aware that there may be a problem (which they may not be until strange behavior emerges, possibly after they have shipped their code),
b) debug and understand the problem, and
c) possibly write extra code to ensure that any group of addCommand() call(s) and the final invoke() call are always executed as an "atomic" operation.

So, my feedback is that, a slightly different API design (like the one I proposed) would eliminate the possibility for the race altogether, rendering moot concerns a), b), and c), making the library that much more robust and reliable.

from child-shell.

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.