28 lines
828 B
Plaintext
28 lines
828 B
Plaintext
// @env NYASH_PLUGIN_ONLY=1
|
|
// @env NYASH_AWAIT_MAX_MS=500
|
|
|
|
// Demo: TaskGroupBox.joinAll() scaffold
|
|
// Note: In plugins-only mode, new TaskGroupBox() may be a no-op; this demo
|
|
// focuses on end-of-program joinAll via runner and explicit call safety.
|
|
|
|
local fut, arr
|
|
|
|
// Prepare a plugin-backed Array and spawn a method via env.future.spawn_instance
|
|
arr = new ArrayBox()
|
|
arr.push(1)
|
|
arr.push(2)
|
|
arr.push(3)
|
|
|
|
// nowait: simulate async by invoking plugin via env.future.spawn_instance
|
|
// Note: In current pipeline, MIR builder lowers nowait ... to env.future.spawn_instance
|
|
nowait fut = arr.length()
|
|
|
|
// Optionally wait with timeout (builder inserts safepoint before/after)
|
|
local r
|
|
r = await fut
|
|
|
|
// Runner will best-effort join all registered futures at program end
|
|
|
|
// Print result for visual confirmation
|
|
print("Result: " + r)
|