[Lazarus] Lazarus Release 1.8
Luca Olivetti
luca at wetron.es
Mon Dec 11 13:37:53 CET 2017
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.
For the time being I'm using FreeOnTerminate:=true and avoid freeing the
thread in OnTerminate (though there are other changes required to my
code and "fixing" working code is always an issue).
I checked the user changes pages for 3.0.0, 3.0.2 and 3.0.4 and there's
no mention of changes in threads (the only one is this one
http://wiki.freepascal.org/User_Changes_3.0#cthreads:_critical_sections_and_recursive_mutex_support
and doesn't apply here).
Bye
--
Luca Olivetti
Wetron Automation Technology http://www.wetron.es/
Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007
More information about the Lazarus
mailing list