5 ms·
Most C++ implementations throw their hands up at setjmp/longjmp/setcontext/makecontext. Even if it appears to work, it's a dangerous set of routines to use in
by aliguori 15y ago
Most C++ implementations throw their hands up at setjmp/longjmp/setcontext/makecontext.
Even if it appears to work, it's a dangerous set of routines to use in C++.
- ncarlson 15y agoThat's how I've always felt. Coroutines are fun to play with in C++, but I'd never be caught dead using them in production code.
- gorset 15y agoDo you think they are safer or more dangerous than threads?
- pja 15y agoYeah, this is going to mix very badly with exceptions. Also, a little rootling around on the web reveals the following statement in IBM's z/OS docs: "Do not issue getcontext() in a C++ constructor or destructor, since the saved context would not be usable in a subsequent setcontext() or swapcontext() after the constructor or destructor returns."
- mfichman 15y agoIndeed. This was more of an experiment than anything else. Ideally, I should have a function that catches all exceptions before calling the user's function to make it safer.