{{htmlmetatags>metatag-robots=()
metatag-title=(ALLOW | ugBASIC User Manual)
metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum)
metatag-description=(Pagina del manuale per ALLOW)
metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png)
metatag-og:title=(ALLOW | ugBASIC User Manual)
metatag-og:description=(Pagina del manuale per ALLOW)
}}
====== ugBASIC Manuale Utente ======
===== ALLOW =====
===== SINTASSI =====
ALLOW
==== SCOPO ====
L'istruzione ''ALLOW'' è l'opposto della funzione ''FORBID''. Mentre ''FORBID''
blocca completamente il multitasking, ''ALLOW'' lo riattiva, consentendo a ugBASIC
di pianificare nuovamente l'esecuzione di altri task, passando l'esecuzione da un
task all'altro in base alla sua politica di pianificazione. Se una ''PROCEDURE''
ha precedentemente chiamato ''FORBID'' per garantire l'accesso esclusivo alla CPU,
''ALLOW'' restituisce il controllo alle altre procedure, consentendo ad altre
procedure di continuare l'esecuzione.
Nota che questo tipo di controllo è "statico": in altre parole, la compilazione
si interromperà se la procedura che ha chiamato ''FORBID'' desidera successivamente
chiamare una funzione che richiederebbe l'attivazione del multitasking. La chiamata
a ''ALLOW'' ripristinerà il multitasking e consentirà la chiamata di routine di
questo tipo.
Una volta che una procedura ha terminato di eseguire una sezione di codice che
richiedeva l'accesso esclusivo al processore, dovrebbe chiamare ''ALLOW'' per
consentire l'esecuzione di altre attività.
Se un'attività deve attendere un evento (ad esempio, un segnale), può chiamare
''ALLOW'' prima di entrare in uno stato di attesa, consentendo ad altre attività
di eseguire il loro codice mentre l'attività di attesa è sospesa.
Utilizzare ''FORBID'' e ''ALLOW'' in modo equilibrato è essenziale per ottenere
sia buone prestazioni che una corretta sincronizzazione tra procedure parallele.
In molti casi, meccanismi di sincronizzazione più sofisticati, come le variabili
condivise, potrebbero essere utilizzati senza disabilitare completamente il
multitasking.
==== ESEMPIO ====
PARALLEL PROCEDURE test
FORBID
' busy waiting, multitasking is suspended!
FOR i=0 TO 1000: WAIT 1 MS : NEXT i
ALLOW
END PROC
==== ABBREVIAZIONE ====
Alw
==== DISPONIBILE SU ====
*
* Atari (400/800)
* Atari XL/XE
* Commodore 128 (MOS 8502)
* Commodore 128 (Zilog Z80)
* Commodore 64
* Commodore 64+REU
* TRS-80 Color Computer
* TRS-80 Color Computer 3
* ColecoVision
* Amstrad CPC 664
* Dragon 32
* Dragon 64
* Thomson MO5
* Thomson MO5
* Olivetti Prodest PC128
* Commodore PLUS/4
* SEGA SC-3000
* SEGA SG-1000
*
* VG-5000
* Commodore VIC-20
* ZX Spectrum 48
==== VEDI ANCHE ====
[[FORBID]]
==== PROBLEMI? ====
Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=SEGNALAZIONE SU ALLOW|aprire una segnalazione]] per questa parola chiave su GitHub. Grazie!===== POWERED BY =====
[[:it:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]