Avatar billede nielsenmathias Nybegynder
20. oktober 2004 - 11:14 Der er 1 løsning

Problemer med tråde

Hejsa.

jeg arbejder på et program der skal indeholde to tråde der kommunikerer over en fifo-queue. Den ene tråd skal simulere hardware, og hente data fra en test-fil i pakker. Disse skal den sende til fifoen. Her henter den anden tråd pakkerne, udtrækker data og sender den i første omgang til stdout eller en fil. dette har virket (og de er jo i virkeligheden ikke så mange ben i det.) MÆÆÆN! jeg har nu tilføjet en kontrol-tråd, der opretter de to andre omtalte tråde. denne bliver instansieret fra main, dvs fire tråde ialt inkl main right..? her kommer problemet: kommunikationen over fifo ser ud til at virke, dvs. jeg kan uden problemer skrive fifo-outputtet fra tråd 2 til skærm, og det der udskrives stemmer overens med det der blev lagt i køen. Men filen står derimod urørt hen! den bliver oprettet, men der bliver ingenting skrevet! men koden til skrivning virker, for hvis jeg undlader den første tråd til simulering, og istedet lader tråd to generere data til fifoen og herefter udtrækker dem, skrives der fint til filen.....! hvordan kan den ekstra første tråd til simulering ødelægge skrivning til en fil i et andet scope?
puha, nok roman men en sidste kommentar: Hver gang jeg starter hele programmet umiddelbart efter en genstart (af fedora iøvrigt), laves der segmentation fault 11. hvis jeg umiddelbart efter prøver igen, kører programmet tilsynedladende fint men der bliver som nævnt ikke skrevet til filen. Regner med at denne fejl har noget med sagen at gøre men ikke hvad...måske noget memory, der ikke er helt styr på eller?
kommentar 2: jeg beskytter min kø med en pthread_mutex. Både kø og mutex er defineret 'extern'.
Avatar billede nielsenmathias Nybegynder
20. oktober 2004 - 13:03 #1
hmmm, det virker hvis de to tråde oprettes og startes fra main... stenet...
snakker med mig selv....tralalej :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester