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.
What do I miss?
Giuliano
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel