-- BBNub.mesa
-- Russ Atkinson, September 2, 1982 12:05 am

-- NOTE: by default, the local world is listened to

DIRECTORY
Rope USING [ROPE],
WorldVM USING [World];

BBNub: CEDAR DEFINITIONS = BEGIN OPEN Rope, WorldVM;

SetWorldSwapForSignals: PROC [new: BOOL] RETURNS [old: BOOL];
-- if world swap is set to TRUE by this routine, then local uncaught signals
-- will use the world swap debugger instead of the local world debugger

FindWorld: PROC [name: ROPE, new: BOOLFALSE] RETURNS [World];
-- finds a named world (returns NIL if none)
-- if new, then starts listening
-- listening twice to the same world is a no-op (& returns the same world)

NextWorld: PROC [last: World ← NIL] RETURNS [World];
-- enumerates the worlds currently known, as in:
-- FOR w: World ← NextWorld[NIL], NextWorld[w] WHILE w # NIL DO
-- ... body of loop
-- ENDLOOP;

TurnADeafEar: PROC [world: World];
-- stops listening to the given world
-- this is a no-op if the world is not already being listened to

END.