On 5/29/12 1:32 AM, deadalnix wrote:
I already did some comment about this.
Making any object synchronization is a very bad design decision. It is
deadlock prone, it is liquid lock prone, it cause an overhead on any
object, and even worse, it is useless most of the time as D promote
thread locality (which is very good).
Actually I think such a characterization is superficial and biased to
the extent it becomes wrong.
Locks are deadlock-prone by design, whether used with objects or with
classic procedural programs. In fact they are better confined to objects
because the association between the protected data and the
synchronization object is clear.
OOP and concurrency are 2 orthogonal topics, and should be handled as
such.
Well there would be active objects that contradict that. But really it
is very natural to encapsulate together some data along with the mutex
that must be acquired to manipulate it. There are known issues with
inheritance, but they are not introduced by the approach, only exposed
by it.
Andrei