Re: [Vala] Volatile keyword in Vala(please answer)




-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

It's supposed that a volatile variable can change "magically" (this is,
being modified by another thread, a device driver...), so the compiler
has to take that into account when doing optimizations.

A crude example in C:

    volatile int v=1;
    while(v==1) {
        sleep(1);
    }

(Let's assume that another thread will change the 'v' variable when
whatever-has-to-occur happens). In this example, the "volatile" is
mandatory because, without it, the C compiler probably will transform
that in something like:

    if (v==1) {
loop:
        sleep(1);
        goto loop
    }

optimizing the loop and doing the comparison one time, only at the
start, because it sees that the variable isn't being modified inside.
But when you add the "volatile", the C compiler will know that the
variable can be changed from other parts of the code, avoiding that
optimization and comparing the value in each loop.

"volatile" is a reserver keyword in C, so implementing it in Vala would
mean little more than adding it directly in the C source when found in
Vala source.

El 28/08/12 09:14, Mikkel Kamstrup Erlandsen escribió:
On 24 August 2012 17:31, Tal Hadad <tal_hd hotmail com> wrote:

Is volatile keyword supported in Vala? Is it planned?
Few sources say it does, but testing showing it's not.

I asked this question a month ago and no one replay.
Does Jörg Biller include this in Vala?

This question is a bit scarce on detail. What do you expect volatile
to do, and why do you need it?

Cheers,
Mikkel
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list


- -- 
Nos leemos
                 RASTER    (Linux user #228804)
raster rastersoft com              http://www.rastersoft.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlA8f/QACgkQXEZvyfy1ha/zvgCgloBpJR6MxRMINNMXaL9cgYVM
mU8AoIV3hGkdvSybTEXiLRKVR3MsBIco
=spbp
-----END PGP SIGNATURE-----




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]