Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Another signal queueing discrepancy
- X-seq: zsh-workers 39561
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Re: Another signal queueing discrepancy
- Date: Tue, 4 Oct 2016 13:07:23 -0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;        d=brasslantern-com.20150623.gappssmtp.com; s=20150623;        h=from:message-id:date:in-reply-to:comments:references:to:subject         :mime-version;        bh=OsE8V2zmW74Bw9dtqomZb1NuqFFW+WMM3BlitF+Fyag=;        b=mGC0ikl1qzdrGZiT/tVx7tp5OJ40/bCcYQOmtXHc8iDCeWIuB+W1umvUsdTkN45aK2         D9B+6/EKaRnsdEATrcCRj8rvs+fJRWR40DcvvygnnWJAwPKgRQfGBaC01UAgb7HCXwae         Zs4y3JHhwc4J/PJ0/UXvKt0ajU0q0h7wXxSE5EBu1jcHR82vhm2/My722ac9DYhzH6T4         m0jiAfj8znYRsrCHn51YBdG3GnEIm5eogf4Lg9sU+ULxhig9+zNEq/48COhkJFpU5faR         wdmszGrQCdcVQmyS0kuC+yQcJxL+HU0oevGMLGs5kTH28F165d0fITH3c4aH3N2+OfT/         x8FQ==
- In-reply-to: <161004120242.ZM8670@torch.brasslantern.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <161004120242.ZM8670@torch.brasslantern.com>
On Oct 4, 12:02pm, Bart Schaefer wrote:
}
} Which is very strange, because there is no signal queue manipulation in
} any of the compstate handling, and it doesn't occur with other uses of
} [[ ]] expressions in completion (or elsewhere).
Here we go.  Only shows up during completion because that's the only
time heaps_saved is true (SWITCHHEAPS), and --enable-zsh-mem-debug.
diff --git a/Src/mem.c b/Src/mem.c
index db311ef..a1744c6 100644
--- a/Src/mem.c
+++ b/Src/mem.c
@@ -918,16 +918,21 @@ memory_validate(Heapid heap_id)
     if (heaps_saved) {
 	for (node = firstnode(heaps_saved); node; incnode(node)) {
 	    for (h = (Heap)getdata(node); h; h = h->next) {
-		if (h->heap_id == heap_id)
+		if (h->heap_id == heap_id) {
+		    unqueue_signals();
 		    return 0;
+		}
 		for (hs = heaps->sp; hs; hs = hs->next) {
-		    if (hs->heap_id == heap_id)
+		    if (hs->heap_id == heap_id) {
+			unqueue_signals();
 			return 0;
+		    }
 		}
 	    }
 	}
     }
 
+    unqueue_signals();
     return 1;
 }
 /**/
Messages sorted by:
Reverse Date,
Date,
Thread,
Author