ciorent
Version:
A lightweight, low-overhead concurrency library
1 lines • 483 B
JavaScript
export let init=()=>[false];export let any=signals=>{let sig=[false];for(let i=0;i<signals.length;i++)signals[i].push(sig);return sig};export let fork=signal=>{let sig=[false];signal.push(sig);return signal};export let aborted=t=>t[0];export let abort=t=>{if(!t[0]){t[0]=true;if(t.length>1)for(let i=1;i<t.length;i++)abort(t[i])}};export let timeout=ms=>{let sig=[false];setTimeout(abort,ms,sig);return sig};export let bind=stack=>{let sig=[false];stack.adopt(sig,abort);return sig};