Comments (3)
We have an implementation of Signal
from the core scripts that uses BinableEvent
internally that I could have adapted.
There were a few issues that led to me avoiding it:
- Yielding caused a lot of bugs working on iOS Lua chat
- We decided that any attempts to yield are bugs.
- I wasn't comfortable with the ordering guarantees of
BindableEvent
- Right now, it fires in FILO order, this signal is FIFO
- I'm not sure if
BindableEvent
's order will be stable in the future
- Lemur, the Roblox emulation layer that lets us run unit tests on Travis CI, doesn't implement an event loop yet, so
BindableEvent
isn't implemented.
from rodux.
I'm not sure if BindableEvent's order will be stable in the future
No promises on that front - we were discussing alternatives for internal signal implementation and one day we might do FIFO. We won't change this lightly of course (only if there are large perf/memory benefits) but it might happen.
from rodux.
I'm going to go ahead and close this issue for now, but if something else comes up (like another feature request to switch to a different signal implementation, fix up NoYield
, etc) feel free to open up a new one.
from rodux.
Related Issues (20)
- PascalCase compatibility layer HOT 2
- Move Heartbeat changed listening to Roact HOT 3
- loggerMiddleware should throw if given invalid arguments HOT 4
- Expunge remaining references to bin scripts
- Use arguments to debug.traceback to improve `NoYield` output HOT 1
- Middlewares are applied in last-in-first-out order HOT 2
- Deprecate 'changed' and introduce new store update signal HOT 2
- Add Rodux.createAction HOT 4
- Don't fire update if the top-level state doesn't change after a reducer HOT 2
- Lift restriction on subscribers yielding
- If the initialState argument of createReducer is nil, then its actionHandlers are never called. HOT 2
- Add the ability to access state from other scripts HOT 2
- Rename root folder from lib to src
- Update docs to fix reducer page HOT 1
- Add a Signal.Destroy method HOT 1
- Store.spec.lua has an undestructed store
- Don't pretty-print tables in loggerMiddleware.lua
- Expose store `ACTION_LOG_LENGTH` as a user-settable param, and add a `:clearLog` method to the store
- Update version and make new release or tag HOT 3
- Continue execution after error is thrown while flushing store updates HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rodux.