Portál AbcLinuxu, 5. května 2024 18:49


Dotaz: Mutex v PyQT4 (hryz celá aplikace)

4.2.2009 15:59 Yenda | skóre: 8
Mutex v PyQT4 (hryz celá aplikace)
Přečteno: 189×
Odpovědět | Admin
Příloha:

Zdravím,

zkouším něco vytvořit v PyQt4 a mám problémy se serializací přístupu k datům.

Přiložený program názorně demonstruje problém. 

Po spuštění na mém počítači přestane hlavní okno reagovat po vypsání první hlášky reagovat.  Nevíte, kde je problém?

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.2.2009 13:04 luky
Rozbalit Rozbalit vše Re: Mutex v PyQT4 (hryz celá aplikace)
Odpovědět | | Sbalit | Link | Blokovat | Admin

Do pythonu ani Qt nedělám, takže si jen tipnu.

Pokud ten timer funguje tak, že se v daných intervalech vždy přeruší aktuální činnost a spustí se jeho obsluha, tak tam je deadlock. Tzn. když máte locknuto a něco děláte, tak vás jiný kód přeruší a bere ten samý lock. Takže nový čekatel vísí a čeká až bude lock volný, ale zároveň vám vzal šanci ho uvolnit.

14.2.2009 16:36 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: Mutex v PyQT4 (hryz celá aplikace)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Argument metody QThread::sleep je cas v sekundach, takze nez se prvni vlakno probere, pockate si 2,5 minuty. A po celou dobu drzi zamek, proto se nic nedeje.
20.2.2009 08:28 Yenda | skóre: 8
Rozbalit Rozbalit vše Re: Mutex v PyQT4 (hryz celá aplikace)

Ahoj, je to tak, částečně. Když jsem ty zámky odstranil, tak se to chovalo stejně špatně. Nakonec jsem to ale vyřešil (po dvou dnech jsem našel člověka, který to hodinu řešil), v případě zájmu přidám funkční příklad .

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.