Historique des modifications - Message

Message #1750

Sujet: [raknet] reseau simple sans serveur


Type Date Auteur Contenu
Création du message 02-03-2007 18:28:20 dark calculator
Donc si j'ai bien compris il faut une section critique et tout le tralala uniquement si l'ordre dans lequel les données sont modifié est important ou si les changements peuvent etre instable.

Par exemple est ce que le code suivant peut devenir instable :
int* i[99]; 
int nbr = -1;

void *th1(void* ptr)
{
    while (nbr!=98)
    {
        nbr++;
        i[nbr] = new int(5);
    }
}



void *th2(void* ptr)
{
    while (1)
    {
        for (int j=0;j<=nbr;j++)
        {
            printf("%i",*i);
         }
         printf("\
");
    }
}

int main()
{
     int t1 = create_thread(th1);
     int t2 = create_thread(th2);
}

Si j'ai bien compris ce code (qui est totalement inutile) est instable car dans th1 il est possible que nbr soit incremente et que juste apres soit lancé lz printf sur le i[nbr] qui n'existe pas encore.

D'ailleur comment ce passe le fait que nbr peut avoir changer entre le debut et la fin de la boucle (je suppose comme il fait le test a chaque boucle qu'il va tenir compte de la nouvelle valeur de nbr)

Encore merci(je n'en finit plus de te dire merci wink)
Ton aide mes precieuses et m'aide beacoup a clarifier les choses

dark calculator

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
178 invités en ligne
membre en ligne: -
RSS Feed