scope(exit): exception safety article example incorrect?
Lionello Lunesu
lio at lunesu.remove.com
Wed Apr 4 22:41:50 PDT 2007
Tim Keating wrote:
> The article on exception safety
> (http://www.digitalmars.com/d/exception-safe.html) uses this example:
>
> void abc()
> {
> Mutex m = new Mutex;
>
> lock(m); // lock the mutex
> scope(exit) unlock(m); // unlock on leaving the scope
>
> foo(); // do processing
> }
>
> However, it seems to me this won't actually work as written. Doesn't any
> variable used for scoping need to be declared either static or outside
> the scope it's protecting? As written, it looks to me as though a new
> local m will be created on the stack each time a thread enters this
> func, which won't protect anything!
>
> TimK
On win32, it could be a named mutex, with the name hardcoded :P
L.
More information about the Digitalmars-d
mailing list