Comments (2)
This can't be solved without implementing #11 (have communicating actors).
from prax.cr.
The reason we have mutexes in Prax is to avoid concurrent spawns of the rack/shell applications. Starting an application may take many seconds, so concurrent requests may come in, telling Prax to start the same application... which is undefined behavior.
With a mutex we could synchronize the start and stop actions to never be invoked concurrently, while having other threads waiting for the application to either start or stop or fail to start, so we could reply adequately. Perfect.
But this broke since we replaced threads for an event-loop (coroutines) since they run on a single thread, and running mutex.synchronize
a second time from the same thread... will lock the thread forever. Bummer.
AFAIK there are no equivalent to mutexes for coroutines, so we must either: implement an equivalent to Mutex#synchronize
for coroutines, or we should implement #11 to fix this bug correctly.
from prax.cr.
Related Issues (20)
- Name resolution with external service not working HOT 2
- Tests are failing and test runner hangs. HOT 1
- `make package` fails HOT 1
- Can installation be made easier on Debian 9? HOT 4
- Bad request when sending host header
- ERROR -- prax: kill: No such process HOT 1
- Compilation error in 0.7.0/master with Crystal 0.24.1 HOT 2
- Please create next release. HOT 3
- start prax manually
- HTTP 1.0 request might return empty response HOT 4
- $RBENV_VERSION HOT 5
- Does not work HOT 15
- Prax freezes after one of multiple applications is killed by the monitor HOT 9
- Cookies still getting combined into one header
- prax-binary: error while loading shared libraries: libevent-2.0.so.5 HOT 7
- https fails with no errors HOT 4
- OpenSSL Errors HOT 1
- Compile error HOT 3
- Not loading an app. HOT 3
- Error: can't find file 'thread' on require "thread" HOT 2
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 prax.cr.