[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
Jeg sidder lige og forsøger mig lidt frem med threads for første gang ... dybt mystificeret. Mit program starter. Der er 1 thread; 1 process. Når jeg spawner en thread første gang, er der pludselig 3 threads med pid's på række. Jeg er godt klar over at threads er processer (med egen pid), men hvorfor er der 3? Hvis jeg laver endnu flere, øges antallet kun med en ad gangen som jeg forventer, men første gang jeg laver en thread, kommer der altså tilsyneladende 2 ud af det. Er det normalt? Er der et eller andet jeg skal gøre for at kunne debugge programmet? Jeg bruger ddd-3.1.6 (gdb-skal). Den går helt i stå første gang den kommer til pthread_create(); mister al kontakt med begge threads, siger noget om at programmet fik et ukendt signal (!), og prøver vist at finde en lokation i sigsuspend.c, men kan ikke finde filen. Jeg har prøvet at catche alle signals med sigwait(), og jeg har prøvet at blocke alle signals med sigprocmask(), men lige meget hjælper det. Ud over det kører programmet fint, når det ikke lige foregår i debuggeren :) Og så til det helt generelle: Jeg har stadig mulighed for lave kode-designet om til at bruge processer i stedet for threads, lidt mere UNIX-tro. Det er mere logisk at bruge threads til denne opgave vil jeg mene, men hvis threads ikke er færdigt udviklede kan det være ligemeget. Hvad er jeres erfaringer? Bruger I threads? Er det klippestabilt? Er det til at arbejde med? Håber nogle kan hjælpe /Simon
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |