<p>Am 10.12.2015 15:06 schrieb "Henry Vermaak" <<a href="mailto:henry.vermaak@gmail.com">henry.vermaak@gmail.com</a>>:<br>
><br>
> On Thu, Dec 10, 2015 at 02:49:50PM +0100, Sven Barth wrote:<br>
> > Am 10.12.2015 12:15 schrieb "Luca Olivetti" <<a href="mailto:luca@ventoso.org">luca@ventoso.org</a>>:<br>
> > > It's obvious that you cannot free the thread from inside a "normal"<br>
> > Synchronize call, it's no so obvious you cannot do it in the<br>
> > OnTerminate method, so maybe a note could be added in<br>
> > ><br>
> > > <a href="http://wiki.freepascal.org/User_Changes_3.0">http://wiki.freepascal.org/User_Changes_3.0</a><br>
> > ><br>
> > > The new implementation is clearly better....once you know *not* to<br>
> > > free<br>
> > the thread inside OnTerminate.<br>
> ><br>
> > In all honesty it was never documented either that you *can* free the<br>
> > object from within OnTerminate and in other occurrences you wouldn't<br>
> > free the object that invoked the handler either, right? So why for<br>
> > TThread then?  => no need to mention as a change<br>
><br>
> Is it worthwhile mentioning that OnTerminate gets called with<br>
> Synchronize()?  I had to dig into the source to verify this.</p>
<p>That would indeed be worth mentioning, but that would belong in the documentation then. Would you file a bug report, please?</p>
<p>Regards,<br>
Sven</p>