TCThreadVirtual

tcThreadManager~ TCThreadVirtual

new TCThreadVirtual(name, func, onErroropt)

One‑shot task executed on a JDK 21+ virtual thread. Shares cooperative semantics
with TCThread and adds a non‑blocking TCThreadVirtual#await.

Example
// Example: basic virtual thread
var v = new TCThreadVirtual("v", () => delay(80));
v.start();
print(v.await(500));
Parameters:
string name

Logical name used in registries.

function func

User function to execute when the thread starts.

function onError <optional>

Optional non‑fatal error handler.

await(timeout) → {boolean}

Non‑blocking wait with timeout.

Example
// Example: await with timeout
var v = new TCThreadVirtual("vWait", () => {
    delay(120));
    v.start();
    print(v.await(500)
});
Parameters:
number timeout
Returns:
boolean

getFunctionName() → {string}

Name.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.getFunctionName());
Returns:
string

getJavaThread() → {java.lang.Thread|null}

Underlying Java thread.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
var jt=v.getJavaThread();
Returns:
java.lang.Thread | null

isAlive() → {boolean}

Liveness (includes short start window).

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isAlive());
Returns:
boolean

isPaused() → {boolean}

Whether paused.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isPaused());
Returns:
boolean

isRunning() → {boolean}

Whether still running.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isRunning());
Returns:
boolean

isVirtual() → {true}

Distinguish type.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isVirtual()); // true
Returns:
true

join()

Warning: may block engine; prefer await().

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
v.join();

pause()

Pause cooperatively.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
v.pause();

resume()

Resume after pause.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
v.resume();

start()

Start once; additional calls are ignored.

Example
// Example: start twice (second call ignored)
var v = new TCThreadVirtual("v", () => delay(10));
v.start();

stop()

Best‑effort stop.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
delay(50);
v.stop();

wasInterrupted() → {boolean}

Whether interrupt observed.

Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.wasInterrupted());
Returns:
boolean