[mapserver-dev] Crash on Windows: fontcache.c
even.rouault at spatialys.com
Sun Oct 19 13:01:31 PDT 2014
> Even that did it! (I removed the second call, the 3 lines, for
> msCleanupOnExit, as you said). Wow! Thank you so much. Will you
> commit this into master now? I can also, but, you solved it.
> I can also file a ticket if you want this to be recorded. Let me know.
I could commit, but perhaps Thomas should confirm. It is somehow linked to his
that added msFontCacheCleanup() in msCleanup(). Although that the double
cleanup on Windows is probably much older than that.
I think that msFontCacheCleanup() doesn't like to be called twice in the
ifndef USE_THREAD case (I suspect you compile without USE_THREAD since I think
the other code path can be safely called twice)
From the comment at line 227 of mapserv.c before
atexit( msCleanupOnExit );
I'm wondering if the intent wasn't that this code should be called when the
process is stopped in a brutal way (on unix there is similar code above based
on signal handlers). But I'm quite surprised that atexit() is called in non-
nominal process end. According to the man page of atexit() : "Functions
registered using atexit() (and on_exit(3)) are not called if a process
terminates abnormally because of the delivery of a signal."
And it seems that Windows follows POSIX behaviour since according to
http://msdn.microsoft.com/en-us/library/tze57ck3.aspx "The atexit function is
passed the address of a function (func) to be called when the program
> I owe you a beer.
Next time you come by Paris ;-)
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
Spatialys - Geospatial professional services
More information about the mapserver-dev