Toon posts:

[C] Posix Thread werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is mijn Code:

#include <pthread.h>
#include <stdio.h>

void *print(void *threadId)
{
while(1)
printf("dit moet hij constant blijven printen")
}

int main()
{
pthreads_t threads;
int rc;
int t=1;

rc = pthreads_create(&threads, NULL, print, (void *)t);
}


Hij geeft nu als ouput een random aantal maal:
dit moet hij constant blijven printen

soms print hij het 3x, soms 20 keer maar hij stopt altijd
Waar gaat dit fout?

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

main process exit, en zal wel al zijn child threads terminaten.

Maw, je moet een join doen in main().

C++:
1
pthread_join(rc, 0);

[ Voor 42% gewijzigd door Zoijar op 03-11-2004 11:22 ]


Verwijderd

Topicstarter
Ja zoiets d8 ik ook al, de thread geeft ff timeslice terug aan main. en die exit idd.

Ik zat al te denke hoe dit op te lossen was, wilde eerst main gewoon daarna oneindig nix laten doen while(1){}, maar dit is een betere oplossing ik ga het meteen proberen :D

- hij knalt er nog uit na een aantal maal...
heel raar

[ Voor 11% gewijzigd door Verwijderd op 03-11-2004 11:28 ]


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Nu exit main netjes wanneer je thread ook exit. Meestal draait een thread niet oneindig lang, maar wil je even wachten totdat het werk klaar is oid.

Verwijderd

Topicstarter
mijn thread moet wel door blijven draaien, de thread moet constant op de achtergrond ip berichtjes bufferen. dat is de bedoeling

Verwijderd

Topicstarter
ik heb nu while(1) onderaan in de main gezet.

Het programma exit nu niet maar op gegeven moment print ie ook niet meer. Ik denkt dat het misschien komt doordat er neit meer in het terminal window kan maar dat hij wel de thread nog uitvoert

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Het is trouwens natuurlijk niet pthread_join(rc,0) maar pthread_join(threads, 0); foutje van mij.

Verwijderd

Topicstarter
lol ff veranderen :D

Hij doet ut super dankjewel :D:D ik ga weer ff door hiermee kijken hoever ik dit keer kom

[ Voor 70% gewijzigd door Verwijderd op 03-11-2004 11:36 ]


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Pagina: 1