[plt-scheme] Versioning problems
I restate my versioning problem hoping in someone's help.
While versioning mzscheme (360 distribution WinXP) with
C:\mz-360>mzscheme -mvqL winvers.ss setup
I get
C:\mz-360>open-input-output-file: cannot open output file:
"C:\mz-360\iconv.dll"
(The process cannot access the file because it is being used by another
process.; errno=32)
This happens when the command prompt shows that the second instance of
MzScheme is going to run.
To get the blocking process I used the tool Filemon from Sysinternals
Filemon shows 3 processes accessing iconv.dll:
MzScheme.exe:2192
MzScheme.exe:2408
svchost.exe:2380
The distinct PID should be because the MzScheme.exe is run twice, the first
just for copying files in a temp dir (and in fact I get the error the second
time).
As for svchost.exe, using the tool Process Explorer from Sysinternals and
based on the PID, I can see the command line starting the process is
"C:\WINDOWS\System32\svchost.exe -k netsvcs".
So I simply try to kill the process svchost.exe:2380 and run winvers again,
but the error shows again.
One strange thing is also that in Filemon the several file actions
(query/open/close) on iconv.dll are always flagged as SUCCESS and never
ERROR.
Based on this, the blocking process could be MzScheme itself, when run the
first time. May be, the second time MzScheme is run, iconv.dll is not
actually blocked, but simply the second MzScheme process is to fast in
asking the resource and so the system has not released it yet.
If this should be the case it will suffice to insert a delay in the second
run as to let the system fully free the resource. I tried to increase sleep
time in winvers.ss from 1 to 10, but this proved no success.
I also used a different box to see if this issue is specific of my system,
and the problem showed again.
So, assuming there is no specific bug, this should be a problem related to
my procedures in versioning, but I cant see where I could possibly be
wrong: running "mzscheme -mvqL winvers.ss setup" is quite trivial and, if I
were wrong in the step before (building with Visual Studio Express 2005), I
should get compiler errors.
Thanks for help.
Antonio