[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]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
On Fri, Aug 08, 2003 at 11:34:14AM +0200, Thomas Salling wrote: > Hej, > > Jeg sidder og leger med tråde i C (GCC 2.95, 2.4.18), men der er noget som virkelig undrer mig. Jeg har forsøgt at lede på google for at se om 2.95 af gcc er bugget, men jeg har ikke fundet noget som relaterede til mit problem. Jeg håber I måske har oplevet noget lignende. Jeg paster lidt kode, men jeg håber I overlever. Jeg har skåret alt væk i et forsøg på at debugge. > > Jeg starter mine tråde således: > > ... > > pthread_t threads[NUM_THREADS]; > int i; > > for( i=0 ; i<NUM_THREADS; i++ ) > { > printf("CREATING THREAD: %d\n", i); > pthread_create(&threads[i], NULL, fetch_start, (void*)&i); > } > > for( i=0 ; i<NUM_THREADS ; i++ ) > pthread_join(threads[i], NULL); > Du genbruger i paa tvaers af traade. Dermed bliver output afhaengigt af traadskedulering og kan variere fra gang til gang. Proev at bruge pthread_self() i stedet. Og saa er dette en udemaerket illustrering af race conditions, det klassiske traadprogrammeringsproblem... Rasmus
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |