pruegelkloete
25-11-2002, 11:00
Hallo Leute,
ich habe da ein Problem mit Pthreads. Ich habe hier im Forum auch schon einges gefunden aber nicht was bezüglich C++ passt.
Also hier mal eine kleine Erklärung zu meinem Problem. Ich wollte in C++ ein Programm schreiben, welches über curses zeichen von der TAstatur einliest.
Unbedarfter Weise habe ich dafür nene extra thread angedacht. Dieser sollte in einer schleife die Tastatur überwachen und wenn es dann eine TAstatureingabe gab, das der jeweilig aktiven klasse durch aufruf einer methode mitteilen. Die klassen, um die es dabei geht, sind abgeleitet von einer Basisklasse, welche fuer dieses Event-Handling die methode handleEvent() implementieren muessen. Darin soll so ne art state-engine haengen, die dann entscheidet, was fuer dieses event gemacht werden soll.
Ich habe das ganze mit pthreads mal versucht, dies sind aber threads in c und mein programm crashte, wenn ich aus dem Eventthread die handleevent-methode aufrufen will. Die klasse wird uebrigens inb main() mit new angelegt.
Also es klappt nicht. Ich habe mir am We dann mal ein Buechliein gekauft und dort gelesen, das ein zugriff nur auf modulglobale c-Variablene moeglich ist. Fuer mich und mein C++ programm wuerde das aber bedeuten, dass ich so richtig global variablen oder strukturen definieren muss, die dann aus den verschiedenen threads geschrieben und gelesen werden, um die events zu handlen.
Mein frage an dieser Stelle: Muss das sein?? oder kann man das auch anders loesen.
Ich habe leider noch keine Bespiel gefunden, ind dem sich zwei Threads ueber festgelegte schnittstellen unterhalten, aber genau das wollte ich erreichen.
Kennt vielleicht jemand von euch eine C++-alternative zu pthreads ???
Ich danke euch im voraus...
Gruss
ich habe da ein Problem mit Pthreads. Ich habe hier im Forum auch schon einges gefunden aber nicht was bezüglich C++ passt.
Also hier mal eine kleine Erklärung zu meinem Problem. Ich wollte in C++ ein Programm schreiben, welches über curses zeichen von der TAstatur einliest.
Unbedarfter Weise habe ich dafür nene extra thread angedacht. Dieser sollte in einer schleife die Tastatur überwachen und wenn es dann eine TAstatureingabe gab, das der jeweilig aktiven klasse durch aufruf einer methode mitteilen. Die klassen, um die es dabei geht, sind abgeleitet von einer Basisklasse, welche fuer dieses Event-Handling die methode handleEvent() implementieren muessen. Darin soll so ne art state-engine haengen, die dann entscheidet, was fuer dieses event gemacht werden soll.
Ich habe das ganze mit pthreads mal versucht, dies sind aber threads in c und mein programm crashte, wenn ich aus dem Eventthread die handleevent-methode aufrufen will. Die klasse wird uebrigens inb main() mit new angelegt.
Also es klappt nicht. Ich habe mir am We dann mal ein Buechliein gekauft und dort gelesen, das ein zugriff nur auf modulglobale c-Variablene moeglich ist. Fuer mich und mein C++ programm wuerde das aber bedeuten, dass ich so richtig global variablen oder strukturen definieren muss, die dann aus den verschiedenen threads geschrieben und gelesen werden, um die events zu handlen.
Mein frage an dieser Stelle: Muss das sein?? oder kann man das auch anders loesen.
Ich habe leider noch keine Bespiel gefunden, ind dem sich zwei Threads ueber festgelegte schnittstellen unterhalten, aber genau das wollte ich erreichen.
Kennt vielleicht jemand von euch eine C++-alternative zu pthreads ???
Ich danke euch im voraus...
Gruss