Fix deadlock on synchronous encrypt
authorAndre Heinecke <aheinecke@gnupg.org>
Wed, 10 Apr 2019 13:43:40 +0000 (15:43 +0200)
committerAndre Heinecke <aheinecke@gnupg.org>
Wed, 10 Apr 2019 13:43:40 +0000 (15:43 +0200)
* src/mail.cpp (do_crypt): Release lock in case sync
encrypt for drafts finished.

src/mail.cpp

index 1d8536d..bbd6089 100644 (file)
@@ -1045,6 +1045,9 @@ do_crypt (LPVOID arg)
       mail->updateCryptMAPI_m ();
       mail->setIsDraftEncrypt (false);
       mail->setCryptState (Mail::NoCryptMail);
+      log_debug ("%s:%s: Synchronous draft encrypt finished for %p",
+                 SRCNAME, __func__, arg);
+      gpgol_unlock (&dtor_lock);
     }
   else
     {
@@ -1675,6 +1678,8 @@ Mail::encryptSignStart_o ()
     }
   else
     {
+      log_debug ("%s:%s: Starting sync crypt",
+                 SRCNAME, __func__);
       do_crypt (this);
     }
   TRETURN 0;