mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-09 07:00:23 +02:00
The collector now has an abstract interface onto the embedder. The embedder has to supply some functionality, such as tracing and forwarding. This is a pretty big change in terms of lines but it's supposed to have no functional or performance change.
20 lines
386 B
C
20 lines
386 B
C
#ifndef GC_FORWARDING_H
|
|
#define GC_FORWARDING_H
|
|
|
|
#include <stdint.h>
|
|
|
|
enum gc_forwarding_state {
|
|
GC_FORWARDING_STATE_FORWARDED,
|
|
GC_FORWARDING_STATE_BUSY,
|
|
GC_FORWARDING_STATE_ACQUIRED,
|
|
GC_FORWARDING_STATE_NOT_FORWARDED,
|
|
GC_FORWARDING_STATE_ABORTED
|
|
};
|
|
|
|
struct gc_atomic_forward {
|
|
void *object;
|
|
uintptr_t data;
|
|
enum gc_forwarding_state state;
|
|
};
|
|
|
|
#endif // GC_FORWARDING_H
|