Changeset 15 for trunk/threads-shared.c


Ignore:
Timestamp:
Apr 21, 2012, 12:24:25 PM (12 years ago)
Author:
Mattia Monga
Message:

Aggiornati 2012

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/threads-shared.c

    r2 r15  
    1010int run(void* s)
    1111{
    12         int* shared = (int*)s; /* alias per comodita` */
     12        int* shared = (int*)s; // alias per comodit\`a
    1313        while (shared[0] < 10) {
    1414                sleep(1);
     
    2828 
    2929        int shared[2] = {0 , 0};
    30 
    3130        /* int clone(int (*fn)(void *),
    3231         *           void *child_stack,
     
    4039                  malloc(4096)+4096,  /* lo stack del nuovo processo
    4140                                       *  (cresce verso il basso!) */
    42                   CLONE_VM | SIGCHLD, /* la (virtual) memory e` condivisa */
     41                  CLONE_VM | SIGCHLD, // (virtual) memory condivisa
    4342                  shared) < 0){
    44                 perror("Errore nella creazione");
    45                 exit(1);
     43                perror("Errore nella creazione");exit(1);
    4644        }
    4745
    4846        if (clone(run, malloc(4096)+4096,  CLONE_VM | SIGCHLD, shared) < 0){
    49                 perror("Errore nella creazione");
    50                 exit(1);
     47                perror("Errore nella creazione");exit(1);
    5148        }
    5249
    5350        /* Memoria condivisa: i due figli nell'insieme eseguono 10 o
    54          * 11 volte: e` possibile una corsa critica. Il padre
     51         * 11 volte: \`e possibile una corsa critica. Il padre
    5552         * condivide shared[0] con i figli */
    5653
    57         while(1) {
     54        while(shared[0] < 10) {
    5855                sleep(1);
    5956                printf("Processo padre. s = %d\n", shared[0]);
Note: See TracChangeset for help on using the changeset viewer.