Differenze tra le versioni di "Generare arbitrariamente un errore "CPU Time Limit Exceeded" con la funzione esterna vlimit()"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
La funzione esterna ''vlimit( )'', dichiarata nel file header di sistema ''/usr/include/x86_64-linux-gnu/sys/vlimit.h'', pone un limite ad una risorsa di un processo.
+
La funzione esterna "vlimit()", dichiarata nel file header di sistema ''/usr/include/x86_64-linux-gnu/sys/vlimit.h'', pone un limite ad una risorsa di un processo.
  
E' possibile terminare un processo dopo tot scondi, generando un errore di sistema "''CPU time limit exceeded''". Viene, dunque, permesso al processo di utilizzare la CPU per non più ditot secondi.
+
E' possibile terminare un processo dopo tot secondi, generando un errore di sistema "''CPU time limit exceeded'' ". Viene, dunque, permesso al processo di utilizzare la CPU per non più di tot secondi.
  
V'è da precisare che comunque la risorsa ''vlimit( )'', seppur ancora funzionante, è ormai superata.  <SUP>&#91;[[#Note|nota 1]]&#93;</sup>
+
V'è da precisare che comunque la risorsa "vlimit()", seppur ancora funzionante, è ormai superata.  <SUP>&#91;[[#Note|nota 1]]&#93;</sup>
  
  

Versione attuale delle 16:27, 22 giu 2024

La funzione esterna "vlimit()", dichiarata nel file header di sistema /usr/include/x86_64-linux-gnu/sys/vlimit.h, pone un limite ad una risorsa di un processo.

E' possibile terminare un processo dopo tot secondi, generando un errore di sistema "CPU time limit exceeded ". Viene, dunque, permesso al processo di utilizzare la CPU per non più di tot secondi.

V'è da precisare che comunque la risorsa "vlimit()", seppur ancora funzionante, è ormai superata. [nota 1]


Vediamo un esempio, dove l'errore di sistema sarà generato dopo 5 secondi:

Library "libc:6"

Private Enum LIM_NORAISE = 0, LIM_CPU, LIM_FSIZE, LIM_DATA, LIM_STACK, LIM_CORE, LIM_MAXRSS

' int vlimit (enum __vlimit_resource __resource, int __value)
' Set the soft limit for RESOURCE to be VALUE.
Private Extern vlimit(__resource As Integer, __value As Integer) As Integer


Public Sub Main()
 
 Dim i As Integer
 
 i = vlimit(LIM_CPU, 5)
 If i = -1 Then Error.Raise("Errore !")
  
 Do    ' ...ὁ ἄπειρος κύκλος.
   Wait 0.01
 Loop
  
End



Note