On 25.09.2012 11:08, Diez Roggisch wrote:
On 9/25/12 9:34 AM, "wg" <wg1@gmx.net> wrote:
On 24.09.2012 22:08, Vinzent Hoefler wrote:
wg wrote:
gibts eine Möglichkeit, dass thread 1 verhindern kann dass thread 2 aktiv wird?
Mit einem entsprechenden Lock, ja.
Vinzent.
OK, dazu muss ich thread 2 über lock oder queue steuern. Da ich aber thread 2 an *beliebiger* Stelle von *thread 1* aus anhalten will, kommt ich das so nicht machen.
Beliebig gibt's nicht. Wenn der Thread im C-Callstack steht, wird der ausgeführt.
Gibt's eine Möglichkeit, den GIL (von python aus) zu beeinflussen? Und zwar in der Form, daß thread 1 den GIL-State für sich beansprucht. Das C-API hat so eine Funktion: PyGILState_STATE PyGILState_Ensure()
Nichts offizielles, das ist bestenfalls ein hack. Du kannst natürlich versuchen, über ctypes an's GIL zu kommen.
Hast dafür evtl. Hinweise/Links wie sowas gehen könnte?
Und muss diese Salami-Taktik bei der Problembeschreibung sein? Das beständige Glaskugelwetzen ist anstrengendŠ
Diez
Ja, hast recht (Glaskugel?wetzen?); ich wolle nur niemanden mit folgender Aufgabenstellung langweilen: Thread 1 mit GUI, Daten werden von thread 2 via queue geliefert. Thread 1 kann mit Button (oder Key) thread 2 *an belibeiger* Stelle pausieren lassen. Wird wohl ein C-framework dafür notwendig sein. Wolf