bonjour,
je suis entrain de faire une application qui doit (mais peut ne pas) finir une tache dans un temps imparti.
j'ai donc decider d'utiliser 2 threads car dans certain cas la dite tache peut etre entrain de lire une socket ou un discripteur qui n'est pas pret (donc attend).

voici le main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
pthread_t tid,ctr,*ctr_ret;
pthread_create(&ctr,(void *)m_timer,NULL);
pthread_create(&ctr,(void *)operate,NULL);
pthread_join(ctr,(void **)&ctr_ret);
je passe simplifie le code de operate qui est trop long pour etre mis ici (sauf si vous insistez):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
size=read_myfd(fd,4);
if(size<0)
{
   free(myvar);
   close(fd);
   return NULL;
}
total_size+=size;
REALLOC(char,myvar,total_size);
...
return myvar;
puis la fonction m_timer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void m_timer(int interval)                                                                           
{   
    time_t entrance,now;                                                                             
 
    time(&entrance);                                                                                 
    do                                                                                               
    {   
        time(&now);
        if(now-entrance>=interval)                                                                   
        {   
            fprintf(stderr,"timeout exiting\n");                                                     
            break;                                                                                   
        }
    }while(1);                                                                                       
 
}
ma question est comment faire en sorte que lorsque m_timer termine, je puisse terminer aussi operate en ayant la possibilite de free(myvar)?
merci pour le temps que vous passez a lire mes idee tordus, peut etre qu'il y a mieux a faire que du multithreading sur le coup?