[argyllcms] Re: Spotread stalling sometimes under Windows

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Fri, 13 Nov 2015 11:58:42 +1100

François Simond wrote:

When the issue occurs, spotread ends up stalling in an infinite
GetDiffuserPosition loop with zeros as response instead of moving on
to take_emis_measurement.

The GetDiffuserPosition is a background thread - it has nothing to do
with taking readings. There is no indications of problems with
the command it uses (ICOM err 0x0).

From looking at log-1-i1DisplayPro it simply seems that after reading 1453
the driver is not asked to do another reading - i.e. there is no call to
"take_emis_measurement" after that. I don't see a problem with the
ArgyllCMS driver from the logs, so it's either something in your code,
and/or possibly a breakdown in the triggering.

If changing PRE_DELAY_MS and POST_DELAY_MS has an effect, then I'd suggest
using values that don't trigger the problem - there's some
tricky interaction with the operating system going on there
in dealing with stdin, to deal with limitations of the Win32
API - see spectro/conv.c poll_con_char() for an explanation.
You probably need to slow it down a lot - i.e. try delays > 200msec.

Graeme Gill.

Other related posts: