def __init__(self, pdbConnector): QThread.__init__(self) self.resultRecordQueue = deque() self.resultRecordMutex = QMutex() self.resultRecordSem = QSemaphore(0) self.resultConsoleQueue = deque() self.resultConsoleMutex = QMutex() self.resultConsoleSem = QSemaphore(0) self.parser = PdbParser(pdbConnector, self) self.pdbConnector = pdbConnector
def __init__(self, dbfilename): try: self.name = dbfilename self.dbsemaphore = QSemaphore( 1) # to control concurrent write access to db metadata.bind = 'sqlite:///' + dbfilename # metadata.bind.echo = True # uncomment to see detailed database logs setup_all() create_all() except: print '[-] Could not create database. Please try again.'
def delay_method_call(self, *args, **kwargs): if self.thread() != QThread.currentThread(): semaphore = QSemaphore() else: semaphore = None event = QueuedCallEvent(method, (self, ) + args, kwargs, semaphore) QCoreApplication.postEvent(self, event) if semaphore is None: QCoreApplication.sendPostedEvents() else: # Wait until the other thread's event loop processes the event semaphore.acquire() return event.result()
def __init__(self, connector, parent=None): QThread.__init__(self, parent) self.resultRecordQueue = deque() self.resultRecordMutex = QMutex() self.resultRecordSem = QSemaphore(0)