mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
commit
7607fad241
@ -1,7 +1,7 @@
|
|||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
""" The GUI """
|
""" The GUI """
|
||||||
import os, sys, Queue
|
import os, sys, Queue, threading
|
||||||
from threading import RLock
|
from threading import RLock
|
||||||
|
|
||||||
from PyQt4.Qt import QVariant, QFileInfo, QObject, SIGNAL, QBuffer, Qt, \
|
from PyQt4.Qt import QVariant, QFileInfo, QObject, SIGNAL, QBuffer, Qt, \
|
||||||
@ -311,11 +311,14 @@ class FunctionDispatcher(QObject):
|
|||||||
if not queued:
|
if not queued:
|
||||||
typ = Qt.AutoConnection if queued is None else Qt.DirectConnection
|
typ = Qt.AutoConnection if queued is None else Qt.DirectConnection
|
||||||
self.dispatch_signal.connect(self.dispatch, type=typ)
|
self.dispatch_signal.connect(self.dispatch, type=typ)
|
||||||
|
self.q = Queue.Queue()
|
||||||
|
self.lock = threading.Lock()
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
q = Queue.Queue()
|
with self.lock:
|
||||||
self.dispatch_signal.emit(q, args, kwargs)
|
self.dispatch_signal.emit(self.q, args, kwargs)
|
||||||
return q.get()
|
res = self.q.get()
|
||||||
|
return res
|
||||||
|
|
||||||
def dispatch(self, q, args, kwargs):
|
def dispatch(self, q, args, kwargs):
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user