From 5744108126f6313d0b0ad6dd2d29355a44dd2e96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 24 May 2018 16:44:49 +0200
Subject: [PATCH] CHANGES: Added note about Pike.identify_cycle().

Also some minor shuffling of existing entries.
---
 CHANGES | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

diff --git a/CHANGES b/CHANGES
index 1ae5fa04d0..3841ccce94 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,15 +3,35 @@ Changes since Pike 8.0.610 (release 12)
 Bug fixes
 ---------
 
-o Stdio.Buffer
+o Compiler
+
+  - The machine code generator for ppc64 now generates correct code
+    under ABI v2 (ppc64le)
+
+  - Fixed an incompatibility between the machine code generator on
+    ppc and GCC 7.
+
+o Pike.identify_cycle
 
-  Eliminates race condition in read_cstring().
+  Fix various issues with LFUNs throwing errors.
 
-o The machine code generator for ppc64 now generates correct code
-  under ABI v2 (ppc64le)
+  LFUNs used by mapping operations may throw errors; this caused
+  identify_loop_visit_leave() to also throw errors. The rest of
+  the identify_cycle code was not happy about this and
+
+  - Forgot to unlock the mc_mutex. This caused all following calls
+    to Pike.identify_cycle() and Pike.count_memory() to hang.
+
+  - Leaked memory.
+
+  The above issues are now avoided by instead using the addresses
+  of objects as indices in the affected mapping. It also fixes
+  the issue with hangs if there are objects with lfuns calling
+  Pike.identify_cycle() or Pike.count_memory().
+
+o Stdio.Buffer
 
-o Fixed an incompatibility between the machine code generator on
-  ppc and GCC 7.
+  Eliminate race condition in read_cstring().
 
 Changes since Pike 8.0.498 (release 11)
 ----------------------------------------------------------------------
-- 
GitLab