On Mon, 11 Dec 2017, Luca Olivetti via Lazarus wrote:
El 09/12/17 a les 11:57, Luca Olivetti via Lazarus ha escrit:
I know I'll have to upgrade to fpc 3 someday, but what worries me about
it is my (and other 3rd party units) use of ansistrings as binary
buffers. I did some quick tests some time ago an nothing seemed broken,
but I'm somewhat reluctant since my software has to run unattended 24/7
(or more like 24/5).
I've done some tests with 3.0.4 and it turns out I'm bitten by the
extensive changes in tthread: freeing a thread in its OnTerminate[*]
randomly (i.e. not every time) produces a sigsev (under win32).
With 2.6.4 it didn't happen (though freeing a thread in OnTerminate had
another problem undes Linux, see
https://bugs.freepascal.org/view.php?id=32759)
[*] I don't know if freeing a thread in OnTerminate is allowed. FPC
documentation here
https://www.freepascal.org/docs-html/rtl/classes/tthread.onterminate.html
says nothing about it, but
the example here (mentioned in the bug report)
http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/TThreadYield_(Delphi)
seems to imply that it should.
It is definitely not allowed in FPC, and I will document it as such.
Michael.
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus