Module workers
Dedicated workers (HTML). A message event carries the text in Event_data, the number of transferred buffers in Event_code and the first one in Event_object; the buffers belong to the receiver. Invalid_Argument for a handle that is not a transferable buffer or appears twice, a message over workers.max_message_bytes, a receiver with too much waiting, or a function of the other side (a page calling a worker function or the reverse).
Exposed to: Window, Worker. Source: api/workers.widl.
Odin: import "wren:workers".
Types
handle Worker : Object
A Worker object (EventTarget: message, messageerror, error).
handle WorkerGlobalScope : Object
The global scope of a worker (EventTarget: message, messageerror).
Functions
Worker_create
Worker Worker_create(string url, string name = "") raisesnew Worker(url, {name}). Not_Allowed when the browser refuses it (the console says why).
Raises: returns an Error (see web).
Host: Worker_create :: proc(c: ^Call, url: string, name: string) -> (u64, Api_Error)
Worker_postMessage
void Worker_postMessage(Worker worker, string message, Buffer[] transfer) raisesworker.postMessage(message, transfer)
Raises: returns an Error (see web).
Host: Worker_postMessage :: proc(c: ^Call, worker: Api_Object, message: string, transfer: []u64) -> Api_Error
Worker_terminate
void Worker_terminate(Worker worker) raisesworker.terminate()
Raises: returns an Error (see web).
Host: Worker_terminate :: proc(c: ^Call, worker: Api_Object) -> Api_Error
DedicatedWorkerGlobalScope_self
WorkerGlobalScope DedicatedWorkerGlobalScope_self()self, in a worker (null in a page).
Host: DedicatedWorkerGlobalScope_self :: proc(c: ^Call) -> u64
DedicatedWorkerGlobalScope_postMessage
void DedicatedWorkerGlobalScope_postMessage(string message, Buffer[] transfer) raisespostMessage(message, transfer), in a worker.
Raises: returns an Error (see web).
Host: DedicatedWorkerGlobalScope_postMessage :: proc(c: ^Call, message: string, transfer: []u64) -> Api_Error
DedicatedWorkerGlobalScope_close
void DedicatedWorkerGlobalScope_close() raisesclose(), in a worker.
Raises: returns an Error (see web).
Host: DedicatedWorkerGlobalScope_close :: proc(c: ^Call) -> Api_Error
DedicatedWorkerGlobalScope_name
string DedicatedWorkerGlobalScope_name() raisesself.name, in a worker.
Raises: returns an Error (see web).
Host: DedicatedWorkerGlobalScope_name :: proc(c: ^Call) -> (string, Api_Error)
SharedWorkerGlobalScope_close
void SharedWorkerGlobalScope_close() raisesclose(), in a shared worker: no connect event any more; the worker stops after the current task.
Raises: returns an Error (see web).
Host: SharedWorkerGlobalScope_close :: proc(c: ^Call) -> Api_Error
SharedWorkerGlobalScope_name
string SharedWorkerGlobalScope_name() raisesself.name, in a shared worker.
Raises: returns an Error (see web).
Host: SharedWorkerGlobalScope_name :: proc(c: ^Call) -> (string, Api_Error)
WorkerGlobalScope_location
string WorkerGlobalScope_location() raiseslocation.href, in a worker: the script's URL.
Raises: returns an Error (see web).
Host: WorkerGlobalScope_location :: proc(c: ^Call) -> (string, Api_Error)
MessageEvent_transfer
Buffer MessageEvent_transfer(Event event, i32 index)The index-th buffer that came with a message event (null when none).
Host: MessageEvent_transfer :: proc(c: ^Call, event: Api_Event, index: i32) -> u64