Variables de clase global

Las variables de clase global tienen un ámbito global y son visibles en todas partes dentro de un script Vue . Puede utilizar una variable global en una o más cláusulas de un script Vue . También pueden declararse al principio textualmente antes de la primera cláusula para mayor claridad. Las variables globales se inicializan en cero o NULL según corresponda.

Todas las variables de un script Vue se asignan de forma predeterminada a la clase global, a menos que se prefije un especificador de clase no global explícito a la declaración. También puede declarar explícitamente variables globales utilizando el especificador de clase __global al declarar una variable. Las variables de lista se crean, por definición, siempre como variables de clase global.

Las lecturas y actualizaciones de variables globales no se serializan a menos que sean del tipo de lista. No hay garantías sobre las carreras de datos cuando las sondas se emiten simultáneamente. Las variables globales, que no son del tipo de lista, son útiles para recopilar perfiles y otras estadísticas.

Puede utilizar variables globales en la sección de predicado de una cláusula Vue .

Los scripts siguientes son ejemplos para inicializar y utilizar variables globales:

int wcount;			/* Global variable declared before first clause */

	@@BEGIN
	{
		int f_count;		/* Global variable declared inside @@BEGIN */
		__global int z_count;	/* Global variable declared with __global prefix */

		f_count = 12;
	}

	@@syscall:*:read:entry 
		when (z_count == 0)
	{
		int m_count;		/* Global variable declared inside a probe */
		m_count += f_count;	/* f_count already declared in earlier probe */
		printf("m_count = %d\n", m_count);
		if (wcount == 1)
			exit();
	}
	

	@@syscall:*:write:entry
	{
		m_count++;		/* m_count already declared in earlier probe */

	}

	@@syscall:*:write:exit
	{
		wcount = 1;		/* w_count declared globally */
	}