Comments (3)
I think its the combination of swapping in a thread while also handing it over to the handlers by reference,
but not sure if that is the case.
from crow.
maybe an issue with default constructed tread?
https://en.cppreference.com/w/cpp/thread/jthread/swap
std::jthread objects may also be in the state that does not represent any thread (after default construction, move from, detach, or join), and a thread of execution may be not associated with any jthread objects (after detach).
Maybe having a synchronized list or queue for urls and let the player choose from them?
Then play thread could run from the beginning and now swap would be needed?
from crow.
Interesting creating std::jthread current{play_stream, ""};
would also work so maybe calling swap on std::jthread current
is undefined behavior?
Although i can not get it to fail on a minimal example without crow.
void play_stream(std::stop_token stoken, std::string stream_url)
{
std::cout << "mediaplayer: start for " << stream_url << "\n";
std::promise<void> stop;
std::stop_callback callBack(stoken, [&stop] {
std::cout << "mediaplayer: stop\n";
stop.set_value();
});
// wait until cancled
stop.get_future().wait();
}
int main(int /*ac*/, char** av)
{
std::jthread current;
std::jthread play{play_stream, av[0]};
current.swap(play);
}
And start for 101 Switching Protocol
looks like some memory for the request/response in crow.
from crow.
Related Issues (20)
- Middleware is not called in case of HTTP upgrade
- CORS problem in 1.1.0 HOT 6
- [Bug?] Running websocket example doesn't work HOT 2
- Not found Crow websocket in Conan HOT 2
- Crash in chat example HOT 4
- Extend GitHub action to build with gcc and clang on the platforms
- Chat Example miss-leading
- Websocket Question HOT 4
- How can i know the progress of one post request? HOT 2
- Easily produced 'Worker Crash' with many simple concurrent http requests
- debian package is missing from the release section of version 1.1.0
- Please add new released version 1.1.0 to vcpkg HOT 1
- Compiler-Warning: ISO C++11 requires whitespace after the macro name
- How to use Middleware with CROW Blueprint HOT 13
- Websocket with dynamic routes in 1.1.0 HOT 1
- Update master to Conan 1.1.0 HOT 6
- Undocummented Macros HOT 2
- Mustache rendering adding extra quotes HOT 1
- Crow_enable_ssl 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 crow.