<<< Vorheriges Thema - Nächstes Thema >>> |
|
Autor |
Nachricht |
jwachtel
Anmeldedatum: 02.04.2007 Beiträge: 3
|
Verfasst am: 24.01.2012, 14:39 Titel: posix threads |
|
|
Hallo,
ich möchte threads auf dem IGW/900 verwenden und möchte mein Problem an folgendem code Beispiel demonstrieren:
Code: | #include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#define NUM_THREADS 5
int finish = 0;
static void* threadFunc(void* arg) {
pthread_exit(NULL);
}
void leave_loop () {
finish = 1;
}
int main(int argc, char *argv[])
{
pthread_t thread;
int rc;
long t;
int i;
signal (SIGTERM, leave_loop);
signal (SIGINT, leave_loop);
while (finish == 0) {
rc = pthread_create(&thread, NULL, (void*) threadFunc, NULL);
if (rc){
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
rc = pthread_join (thread, NULL);
fprintf (stderr,"rc == %d\n",rc);
sleep (1);
}
pthread_exit(NULL);
} |
Ich kompiliere das Programm mit dem folgenden Befehl
Code: | m68k-elf-gcc -o threads threads.c -lpthread -Wl,-elf2flt -m5307 -lm -lc |
auf einem Ubuntu 10.04 host.
Code: | m68k-elf-gcc --version | liefert
Wenn ich das Programm auf dem IGW/900 ausführe, werden laufend neue threads generiert aber es bleiben zombie threads zurück und irgendwann können keine neuen Threads mehr erzeugt werden, weil der Speicher ausgeht ( Code: | ERROR; return code from pthread_create() is 11 | )
Wenn ich das gleiche Programm mit dem gcc auf meinem Ubuntu Host kompiliere, läuft es einwandfrei, ohne dass Zombieprozesse / -threads zurückbleiben.
Was mache ich falsch oder wie kann ich das Problem umgehen?
Gern können Sie mich telefonisch erreichen unter 076145885425
Mit freundlichem Gruß aus Freiburg,
Jakob Wachtel
--
Dipl.-Ing. (FH) Jakob Wachtel, M.Sc.
Project Manager
Autonomous Systems and Mini-Grids
Department PV Off-Grid Solutions and Battery System Technology
Fraunhofer-Institute for Solar Energy Systems ISE
Heidenhofstrasse 2 | 79110 Freiburg, Germany
Phone: +49 (0) 7 61/ 45 88-5425 | Fax: +49 (0) 7 61/ 45 88-92 17
jakob.wachtel@ise.fraunhofer.de
www.ise.fraunhofer.de
[/quote] |
|
Nach oben |
|
|
mha
Anmeldedatum: 05.05.2006 Beiträge: 28
|
Verfasst am: 27.01.2012, 10:11 Titel: |
|
|
Hallo,
unter uClinux sollten Threads nur erstellt und nicht beendet werden, sonst
gibt es Probleme, z.B. Zombie Prozesse, Memleaks, ... .
uClinux und pthread-uClinux ist nicht 100% possix-konform und nur bedingt
einsatzfähig.
Gruß Marco |
|
Nach oben |
|
|
|
|
Sie können keine Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum nicht antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht teilnehmen.
|
|