[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Duvidas no EP2
- Subject: Re: Duvidas no EP2
- From: Jay Santos <jay_santos@yahoo.com>
- Date: Wed, 8 May 2002 13:55:46 -0700 (PDT)
Na verdade so ocorreram alguns erros "conceituais"
mesmo...
No primeiro problema eu simplesmente criei uma struct
timezone e passei como parametro.
No segundo problema, tinha esquecido duas coisas:
1) esqueci de dar um pthread_detach apos criar a
thread carro.
2) demorei pra perceber que o pthread_cond_timewait,
quando acaba o tempo de espera, pega o lock do mutex
de novo automaticamente, mas nao o libera!
Enfim... Como eu ja li uma vez "Talvez sua vida sirva
apenas de aviso para a geracao futura" :-)
--- Rodrigo Vieira Couto <rcouto@linux.ime.usp.br>
wrote:
> Ola!
>
> Acreditem ou nao... passei pelos mesmos problemas.
>
> On Wed, 8 May 2002, Jay Clei Garcia dos Santos
> wrote:
>
> JCGdS> Ok, algumas duvidas no EP2...
> JCGdS>
> JCGdS> 1) no exemplo do man pthread_cond_timedwait
> ele chama a funcao
> JCGdS> gettimeofday da seguinte maneira:
> JCGdS>
> JCGdS> struct timeval now;
> JCGdS> ...
> JCGdS> gettimeofday(&now);
> JCGdS>
> JCGdS> So que segundo o manual do gettimeofday voce
> tambem tem que passar como
> JCGdS> parametro uma struct timezone (e realmente,
> se eu compilo passando
> JCGdS> um so parametro ele da erro). Como eu devo
> inicializar essa struct???
>
> A gettimeofday nao precisa receber... passe um NULL
> para ela e ela usarah
> a timezone padrao.
>
> JCGdS> 2) Estou fazendo o seguinte:
> JCGdS>
> JCGdS> gettimeofday(&agora, &zona);
> JCGdS>
> JCGdS> tempo.tv_sec = agora.tv_sec + 5;
> JCGdS> tempo.tv_nsec = agora.tv_usec * 1000;
> JCGdS> pthread_mutex_lock(&mutex_da_thread);
> JCGdS> pthread_cond_timedwait(&dummy,
> &mutex_da_thread, &tempo);
> JCGdS>
> JCGdS> //aqui vem algumas impressoes de teste
> JCGdS>
> JCGdS> quando eu rodo o programa, ele imprime
> imediatamente TODOS os testes de
> JCGdS> todas a threads! E pior, se eu coloco isso
> num loop infinito
> JCGdS> (while(1)) ele imprime uma so vez e sai.
> JCGdS>
> JCGdS> Alguem pode me ajudar???
>
> Nao sei se foi seu caso, mas comigo foi um breve
> relapso: confundi usec
> (microsegundo, 10^-6) com msec (milisegundo,
> 10^-3)... xinguem-me de
> burro... mas acontece! heaheahae
>
> Espero que tenha ajudado,
>
> Rodrigo Couto
>
> .-.
> /|||\
> .-. /|||||\ .-.
> .-----------------------------.
> .-. /|||\ /|||||||\ /|||\ .-. |
> Rodrigo Vieira Couto |
> /|||\ /|||||\ /|||||||||\ /|||||\ /|||\
> >-----------------------------<
> <|||||x|||||||X|||||||||||X|||||||x|||||> |
> undergrad - bcc - ime - usp |
> \|||/ \|||||/ \|||||||||/ \|||||/ \|||/ |
> rcouto@linux.ime.usp.br |
> `-' \|||/ \|||||||/ \|||/ `-' |
> rvcouto@ime.usp.br |
> `-' \|||||/ `-'
> `-----------------------------'
> \|||/
> `-'
>
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com