Synchronisierung zwischen Python und C++

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
wivaxing
User
Beiträge: 21
Registriert: Mittwoch 17. Oktober 2007, 14:16

Hallo,

ich rufe aktuell einige C++ Funktionen über Corba in Python auf. Das Problem ist, das sich die zwei Programme bei der Nebenläufigkeit synchronisieren müssen. Ich will z.B. in Python auf eine Ressource zugreifen, die noch vom C++ Programm berechnet wird. Aktuell mache ich etwas, das zwar funktioniert aber einfach verdammt langsam ist.

Denn wenn ich auf die unfertige Ressource zugreife, feuert das C Programm eine Exception. Diese fange ich, warte eine definierte Zeit und versuche es erneut bis keine Exception mehr kommt. Wie gesagt, das funktioniert, tut mir aber jedesmal bei Benutzung weh.

Ich stelle mir etwas in derart vor, daß beim Zugriff auf eine unfertige Ressource das Python Programm einschläft und erst wieder aufwacht bzw. geweckt wird, wenn diese verfügbar ist. Nach welchen Mechanismen muß ich mich in Zukunft umsehen, um jenes in dem Szenario mit Python zu erreichen? Oder gibts da generell andere Möglichkeiten?

danke
BlackJack

Das ist letztendlich eher ein Problem auf der C++-Seite. Dort müsste der Aufruf solange blockiert werden, bis das Ergebnis feststeht. Etwas komplizierter wird's dann noch, weil man ja wahrscheinlich nicht beliebig lange mit der Antwort warten kann, ohne dass es einen Timeout gibt. Also übergibt man am besten einen Callback und lässt das C++-Programm "zurückrufen" wenn das Ergebnis bereit steht.
Antworten