Hi, On Tue, 15 Jul 2003, Michael Wesp wrote:
Wenn ich Dich recht verstanden habe, könnte ich den Zugriff auf die globalen Variablen testen, wenn ich sie in gewissen Abständen polle. Die Threadsynchronisierung sorgt dann dafür, daß das ganze effizient ohne Polling funktioniert, und der Thread bei Änderung einer relevanten Variable aufgeweckt wird und bis dahin keine Rechenzeit verbrät.
Habe ich das richtig verstanden?
Jupp. Sowas wie (pseudo-code): pthread_cond_t machwas; char *message; thread1() { while (1) { warte_auf (&machwas); printf ("got message: %s\n", message); } } thread2() { message = "Yeah"; pthread_cond_broadcast (&machwas); } Da sind jetzt keine mutexe dabei, die aber notwendig sind. Aber hier wird quasi in warte_auf() (welches pthread_cond_wait benutzen muss) darauf gewartet, das irgenein anderer Thread die Condition Variable 'machwas' "aktiviert". Du musst natuerlich auch Nachrichten zurueckschicken koennen, damit thread2() mitbekommt, wann thread1() mit dem Verarbeiten (oder wenigstens wegspeichern) der Nachricht fertig ist. Also noch ne condvar 'binfertig' dazu, auf die in thread2() gewartet wird, und auf die in thread1() gebroadcastet wird.
[... /proc kann man nicht beschreiben ...]
Das wusste ich nicht. Ich habe gedacht, das laesst sich ganz normal benutzen.
Noe. Nicht in dem Sinne. Es liefert mehr oder minder Informationen ueber das System und die Prozesse. Es gehoeren auch schreibbare Dateien dazu, mit deren Hilfe man einige Systemparameter aendern kann. Aber da kann man nicht einfach reinschreiben. Wenn man ehh schon Threads benutzt will man sowieso nicht durchs Dateisystem gehen, nur um Daten auszutauschen. Wuerde viel zu langsam sein. Ciao, Micha.