[Tilesathome] Windows problem

Gert Gremmen GertGremmen at ce-test.info
Wed Dec 12 17:47:08 GMT 2007


Thanks, for your help.
But, the files INSIDE the directory CAN be deleted (actually
Moved) so it has something to do with the
DIRECTORY not with ghost files as you say.

How I found out ?

While in error, repeatedly showing
The rename error message, followed by
The server request error, I could
Move *.* of the sliced imgae files inside to another
Directory.

Let me know what you think.

Gert

-----Oorspronkelijk bericht-----
Van: Tino Miegel [mailto:tino.miegel at googlemail.com] 
Verzonden: woensdag 12 december 2007 18:09
Aan: Gert Gremmen
CC: tilesathome at openstreetmap.org
Onderwerp: Re: [Tilesathome] Windows problem

2007/12/12, Gert Gremmen <GertGremmen at ce-test.info>:
> Some investigations (debug=1) have led to the conclusion
>
> that a rename operation of the tilesxxxx.dir to tilesxxxx.upload
>
> is in error.
>
> When manually trying to rename the dir,  Windows says that
>
> the directory is in use by a process…..
>
>
>
> Now let's find out what process…..
>
Hi,

the problem is line 1446 in tilesGen.pl:

    my $Image = newFromPng GD::Image($File);

After this call, $File can't be unlinked (closed) anymore by the perl process (the undef doesn't help, neither).
I've done some researching that lead to the conclusion, that this is a problem with the GD perl implementation within ActivePerl for windows (under linux files can be deleted even when still in use). So even after finishing one tile, the t at -client can't delete the "process_nr"-tempdir because of many ghost files...
So i've reimplementet tilesGen.pl to use Perlmagick instead of libGD.
It's working now (i've no perl experience), but my problem is, that i can't figure out the compare-function of perlmagick. So detecting black tiles, empty sea tiles and empty land tiles does not work now...
I am attaching the diff, perhaps some perl guru can figure out a working solution ;)


Bye, Tino

PS:
Comparing e.g. the $EmptySeaImage with $EmptyLandImage gives me an error value >0, but comparing one of the 3 reference images with our temporary $SubImage gives always an undefined value or 0.0.


More information about the Tilesathome mailing list