Michael Sperber [Mr. Preprocessor] writes:
inspection. (Except for the typo already noted.) Many thanks for
working on this!
Thanks and you are welcome.
From code inspection, your channel manipulation looks correct. Any
chance you could find out more about the channel object it's failing
on? Namely, which part of the assertion is failing, and what its
actual type is?
The assertion fails with basic_p false and free true. The type
was
lrecord_type_magic_data. Basic_p should be true since the headers for
the new event data types are lrecords not lcrecords. The fix is to
define the implementations for the new event data with
DEFINE_BASIC_LRECORD_IMPLEMENTATION. I will submit a patch as soon as
I can get on the outside of the firewall.
I found one more problem with my patch where the event type and the
event data type did not match . With my original patch and the follow
on fixes I've been running with --use-kkcc for about four days now
without further problems. Subjectively the GC runs noticeably faster.
I should have patches out by tomorrow morning. I intend to submit the
patch to events.c changing DEFINE_LRECORD_IMPLEMENTATION to
DEFINE_BASIC_LRECORD_IMPLEMENTATION separately so the more general
patch is distinct from the Cygwin/Windows changes.
david