3 ms·
In general async executions really are big sources of race conditions in single threaded program. JS avoids this problem by blocking/queuing tasks until the cur
by kbumsik 8y ago
In general async executions really are big sources of race conditions in single threaded program. JS avoids this problem by blocking/queuing tasks until the current task is done but this is not the case in most lower-level environments.
1. Reentrancy. Flow of tasks can be interrupted by hardware interrupts and OS signals. In that case race conditions can happen by interrupt handlers. Bare metal embedded system programmers often have big headaches because of this.
2. JS implementations and JS API design can have race condition bugs. So JS API designers have to consider it. One of example is because of the order of queuing tasks/handlers. [1]
[1]: https://github.com/w3c/mediacapture-record/issues/150#issuecomment-428104992 https://github.com/w3c/mediacapture-record/issues/150#issuec...