On 10/15/15 4:06 AM, Dmitry Olshansky wrote:
On 13-Oct-2015 21:28, Marco Leise wrote:
Am Tue, 13 Oct 2015 12:52:55 +0000
[snip]
Guys, sorry to break into your wishful thinking, but

    synchronized(mutex) {}

already works as you want it to since as long as I can think.
Yes, it takes a parameter, yes it calls lock/unlock on the
mutex. :)

Now how hard would it be to support any object (mutex kind) with
lock/unlock?

AFAIK, the way this works is that mutex makes itself its own monitor object. So any other mutex-like object can follow this pattern. Or did I misunderstand the question?

Or do we even need it with scope(exit)?

I personally find the enforcement of the scope guard much better than having to manually add the lock inside the scope. It gives a clear delineation of where the lock MUST go (before the scope is entered).

you can simulate synchronized(mutex) {} like:

{
   auto _lock = scopeLock(mutex);
}

But this is not nearly as robust. One could add junk before the lock, and no complaints from the compiler.

I don't really understand all the disdain for synchronized here...

-Steve

Reply via email to