Code:
#include<qapplication.h>
#include<qthread.h>
#include<stdio.h>
#include<unistd.h>
int a=1, b,c=0;
class rdFrmEmacs : public QThread {
public:
virtual void run();
};
void
rdFrmEmacs::run()
{
do
{ if (!c)
{ scanf("%d %d\n",&a,&b); // from emacs
c = a+b;
}
}while(a >= 0);
}
int main()
{ rdFrmEmacs t; t.start();
do{
if(c)
{ printf("Summe aus Thread t %d\n",c);
fflush(stdout);
c=0;
}
}while(a >= 0);
t.wait();
}
arbeite nur dann wie erwartet wenn die Eingaben
nichtnur mit Returntaste, sondern danach auch noch
mit ctl-D abgeschlossen werden.
Und eigentlich hätte ich auch noch die Ausgabe der
letzten Summe erwartet, die sich aus dem a < 0 ergibt.
Dieser Code
ist nur eine Vorübung für ein wesentlich größeres
Programm daß durch emacs-lisp als asynchroner
prozess gestartet wird.
Lesezeichen