[fpc-devel] Suggestion: reference counted objects
Sven Barth
pascaldragon at googlemail.com
Sat Sep 20 21:22:56 CEST 2014
Am 20.09.2014 20:34 schrieb "Giuliano Colla" <giuliano.colla at fastwebnet.it>:
>
>
> Il 20/09/2014 19:20, Boian Mitov ha scritto:
>>
>> Hi Chriss,
>>
>> Personally I favor reference counted objects. While there are interfaces
as you pointed, and in Delphi you can even use smart pointers now, there is
still a lot of cases when you need to use objects, and have to manually
free them.
>> In single threaded environment that is not such an issue, but in
parallel and heavily multithreaded environments, reference counting is a
life saver.
>
>
> Can you explain how reference counting can be safely implemented in a
parallel multithreaded environment, without heavily affecting performance?
> A mere increment or decrement of count means to get a lock and to release
a lock on that object. Application code can know what is thread safe and
what is not, and use lock only when appropriate.
> A general mechanism to be reliable should take into account all
possibilities. If it does, it will block threads even when unnecessary. If
it doesn't, it will be unsafe.
That would work the same way as it does in interfaces, arrays and strings:
using Interlocked*-functions.
Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20140920/0da586fa/attachment.html>
More information about the fpc-devel
mailing list