Wren a web browser where WebAssembly runs everything, JavaScript included

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 = "") raises

new 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) raises

worker.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) raises

worker.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) raises

postMessage(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() raises

close(), in a worker.

Raises: returns an Error (see web).

Host: DedicatedWorkerGlobalScope_close :: proc(c: ^Call) -> Api_Error

DedicatedWorkerGlobalScope_name

string DedicatedWorkerGlobalScope_name() raises

self.name, in a worker.

Raises: returns an Error (see web).

Host: DedicatedWorkerGlobalScope_name :: proc(c: ^Call) -> (string, Api_Error)

SharedWorkerGlobalScope_close

void SharedWorkerGlobalScope_close() raises

close(), 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() raises

self.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() raises

location.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

Edit this page on GitHub