From 56c517d2654c6fa614f231295aa0668989ccb098 Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Tue, 21 Jul 2020 09:39:04 -0700 Subject: [PATCH] examples: Add a GC call to the externref C example --- examples/externref.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/externref.c b/examples/externref.c index ded28bd072..4ec007ffa7 100644 --- a/examples/externref.c +++ b/examples/externref.c @@ -82,6 +82,9 @@ int main() { printf("Creating new `externref`...\n"); // Create a new `externref` value. + // + // Note that if you need clean up for after the externref is reclaimed, you + // can use `wasmtime_externref_new_with_finalizer`. wasm_val_t externref; wasmtime_externref_new("Hello, World!", &externref); assert(externref.kind == WASM_ANYREF); @@ -148,6 +151,11 @@ int main() { assert(results[0].kind == WASM_ANYREF); assert(wasm_ref_same(results[0].of.ref, externref.of.ref)); + // We can GC any now-unused references to our externref that the store is + // holding. + printf("GCing within the store...\n"); + wasmtime_store_gc(store); + // Clean up after ourselves at this point printf("All finished!\n"); ret = 0;