From 7813804014ca664f063a6f1c0c06a477c2ff3dc6 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Thu, 10 Jan 2008 13:38:34 +0000 Subject: [PATCH] 2008-01-10 Marcus Brinkmann * kdpipeiodevice.cpp: New version from Frank Osterfeld. --- gpgme/ChangeLog | 2 ++ gpgme/kdpipeiodevice.cpp | 15 +++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 9f5bbe6..60b4e50 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,5 +1,7 @@ 2008-01-10 Marcus Brinkmann + * kdpipeiodevice.cpp: New version from Frank Osterfeld. + * engine-gpgconf.c (gpgconf_config_load_cb2): Handle the flag NO_ARG_DESC. diff --git a/gpgme/kdpipeiodevice.cpp b/gpgme/kdpipeiodevice.cpp index 9e0179c..dd2503b 100644 --- a/gpgme/kdpipeiodevice.cpp +++ b/gpgme/kdpipeiodevice.cpp @@ -329,11 +329,14 @@ void KDPipeIODevice::Private::emitReadyRead() emit q->readyRead(); if ( !thisPointer ) - return; - qDebug( "KDPipeIODevice::Private::emitReadyRead %p, %d: locking reader (CONSUMER THREAD)", this, counter ); - synchronized( reader ) { - qDebug( "KDPipeIODevice::Private::emitReadyRead %p, %d: locked reader (CONSUMER THREAD)", this, counter ); - reader->readyReadSentCondition.wakeAll(); + return; + + if ( reader ) { + qDebug( "KDPipeIODevice::Private::emitReadyRead %p, %d: locking reader (CONSUMER THREAD)", this, counter ); + synchronized( reader ) { + qDebug( "KDPipeIODevice::Private::emitReadyRead %p, %d: locked reader (CONSUMER THREAD)", this, counter ); + reader->readyReadSentCondition.wakeAll(); + } } qDebug( "KDPipeIODevice::Private::emitReadyRead %p leaving %d", this, counter ); @@ -704,7 +707,7 @@ void Reader::run() { while ( !cancel && !error && bufferFull() ) { notifyReadyRead(); - if ( bufferFull() ) { + if ( !cancel && bufferFull() ) { qDebug( "%p: Reader::run: buffer is full, going to sleep", this ); bufferNotFullCondition.wait( &mutex ); } -- 2.26.2