Available on: all targets

FORBID

In some situations, it is necessary to ensure that a sequence of operations is executed atomically, without interruption. The FORBID instruction plays a crucial role in this way, offering the programmer a way to take full control of the system's execution, at least temporarily.

In simple terms, FORBID blocks any attempt by ugBASIC to pass execution from one task to another. This means that the task that called FORBID will continue to execute its code without interruption until a corresponding call to ALLOW is made. The FORBID ensures that a sequence of critical operations is executed indivisibly, without interference from other tasks. This gives the programmer granular control over the system's execution.

SYNTAX

 FORBID


Legend
  • id : identifier
  • type : datatype
  • v : value
  • "..." : string
  • [...] : optional

EXAMPLE

 PARALLEL PROCEDURE test
    FORBID
    ' busy waiting, multitasking is suspended!
    FOR i=0 TO 1000: WAIT 1 MS : NEXT i
    ALLOW
 END PROC


ABBREVIATION: Fd

Join BASIC 10Liner Contest with ugBASIC!

An interesting competition is held at the beginning of each year: the BASIC 10Liner Contest. It is possible to use ugBASIC to participate in the next "BASIC10Liner" competition, in the following categories:

  • PUR-120 - A game in 10 lines of max 120 characters (w/abbrev.)
  • EXTREME-256 - A game in 10 lines of max 256 characters (w/abbrev.)
  • SCHAU - Any program in 10 lines of max 256 characters (w/abbrev.)
In order to reduce space you can use this abbreviation for this instruction:

FORBID ↔ Fd

Any problem?

If you have found a problem with this keyword, if you think there is a bug or, more simply, you would like it to be improved, open an issue for this example on GitHub.
Thank you!

open an issue BACK TO KEYWORDS