Boost.Coroutine allocates its own call stacks. Does Boehm GC consider pointers on these stacks as roots, and if not how can I make it do that? After a context switch to a coroutine, Boehm terminates the program.
How to use Boost.Coroutine with Boehm GC?
286 Views Asked by AudioBubble At
2
There are 2 best solutions below
1
Jerry Coffin
On
Presumably the code in Boost.Coroutine saves a pointer to the call stack it allocates, and stores it in one of the "usual" places to store pointers (e.g., some pointer variable).
If that is the case, then yes, the GC will "chase" the pointer from the variable in which it's stored to the call stack, and from there (recursively) through any pointers it contains.
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in BOEHM-GC
- What's the difference between generational and incremental garbage collection?
- Does Boehm GC recognize the stacks of Win32 Fibers as roots?
- C blocks extension (libBlocksRuntime) - use custom memory allocator (Boehm GC) for Block_copy()
- boehm-gc : finalizer, and shrink to fit heap
- Running Boehm GC in multiple threads independently
- boehm-gc with C++11's thread library
- About Mechanism of Memory Release in Boehm GC
- How do I make libgc work in Mac OS X?
- Garbage Collector : finalize isn't always called?
- Binding glib into Crystal lang (GC issue)
- How to use asprintf with the Boehm GC?
- when will the boehm-gc 7.6 be released
- Using the GMP library with Boehm's Garbage Collector
- Private API call not allowed in iOS (function "exc_server")
- Does holding CPython's GIL guarantee that all cpython's threads stop?
Related Questions in BOOST-CONTEXT
- boost context class
- How to use boost::log named_scope with boost::asio::yield_context?
- How to customize a coroutine state in boost asio coroutine?
- Using Boost.coroutine2 on ARM bare-metal
- SetUnhandledExceptionFilter does not work with boost context
- Boost ASIO/Coroutines: Attempting to write an echo server using boost asio and coroutines, but am getting inconsistent behaviour
- Making thread_local variables fully volatile
- boost::context for arm64?
- Boost Context library
- Boost 1.57 Boost.Context fcontext_t resource management
- Minimal possible stack size on Windows when using C++ exceptions (using boost context fibers)
- Boost: Single Threaded IO Service
- Coroutine-local variable in boost
- How to use Boost.Coroutine with Boehm GC?
- make_fcontext/jump_fcontext used with shared stack
Related Questions in BOOST-COROUTINE
- Unable to link against boost libraries
- Unexpected output with boost coroutine2
- How do segmented stacks work
- Boost.Coroutine not using segmented stacks
- boost coroutine doesn't resume after an async_write operation
- Is it required to resume co-routine from the calling function in C++?
- Minimal awaitable example
- How to specify `boost::asio::yield_context` with timeout?
- How to use boost::log named_scope with boost::asio::yield_context?
- What difference between boost awaitable/coroutine/deferred?
- How to customize a coroutine state in boost asio coroutine?
- Boost coroutine running on a separate thread?
- C++: Datastax CassFuture to BoostAsio Awaitable
- How to properly use a class member function with boost::coroutine?
- Stack allocation for C++ green threads
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Currently boost doesn't provide a way to hook into segmented stack allocations, so here's a solution for fixed size stacks.
You then provide it when creating the coroutine.