all devices regression report - 2018-03-29-00:45:32 - 9ff6b34e461fcbd4ef27fbb6c5c8a15071fe1370
[email protected] Thu, 29 Mar 2018 00:45:32 -0700 (PDT)
| Newsgroups | gmane.comp.printing.ghostscript.regression |
|---|---|
| Message-ID | <20180329074533.4281C2040273@i7> |
Differences in all devices errors using gs/examples files Previous Revision: 33701ac07115cb2f634a40ab73a5c127ca870ad8 Current Revision: 9ff6b34e461fcbd4ef27fbb6c5c8a15071fe1370 commit 9ff6b34e461fcbd4ef27fbb6c5c8a15071fe1370 Author: Ray Johnston <[email protected]> AuthorDate: Fri Feb 16 13:51:04 2018 -0800 CommitDate: Wed Mar 28 22:08:40 2018 -0700 Make ICC profile management thread safe. The change to ref_count of profiles needs to be protected by a lock if the profile ref_count could be changed by another thread. Also when decrementing the ref_count to 0, we cannot free the lock until after the profile has been unlocked. New routine gsicc_adjust_profile_rc replaces old (not threadsafe) function gsicc_profile_reference. Also add tracing "cname" to the RC_ADJUST_ macro to aid in debugging with -Z^ debug flag. Testing had revealed race conditions which are now fixed (eliminate use of semaphores). This also changes the gsicc_lcms2art.c interface functions to keep a list of transforms configured to have differing buffer formats that include alpha, planar IN/OUT, big_endian IN/OUT, bytes_per_component IN/OUT which are cloned as needed by threads. Change gscms_is_threadsafe to return "true" in gsicc_lcms2art.c TBD: If a link fails to build a thread may hang waiting for the link profile to become valid if it was not the thread that was building it. Not a new condition, but exposed when gscms_is_threadsafe returns true. TBD: Fix error handling / clean-up when links fail to build. Also not new, but is needed to prevent leaks, and possibly hang conditions. base/gdevp14.c base/gscdevn.c base/gscie.c base/gscms.h base/gscscie.c base/gscspace.c base/gsicc.c base/gsicc_cache.c base/gsicc_lcms2art.c base/gsicc_manage.c base/gsicc_manage.h base/gsicc_monitorcm.c base/gsicc_nocm.c base/gsicc_replacecm.c base/gsmemory.c base/gsrefct.h base/gstrans.c base/gxclist.c base/gxclrast.c base/gxcmap.c base/gxipixel.c base/lib.mak lcms2art/include/lcms2art.h lcms2art/src/cmsxform.c lcms2art/src/lcms2art.def xps/xpscolor.c xps/xpsimage.c xps/xpstile.c new errors: === ghostpdl/examples/text_graph_image_cmyk_rgb.pdf === pxlcolor === GPL Ghostscript GIT PRERELEASE 9.24: link at 0x0x237a770 being removed, but has ref_count = 1 === ghostpdl/examples/text_graph_image_cmyk_rgb.pdf === pxlmono === GPL Ghostscript GIT PRERELEASE 9.24: link at 0x0x3f47770 being removed, but has ref_count = 1 errors that went away: errors that are not whitelisted: === ghostpdl/examples/text_graph_image_cmyk_rgb.pdf === pxlcolor === === ghostpdl/examples/text_graph_image_cmyk_rgb.pdf === pxlmono ===