c++ - Looking for a function (or a macro) to return a boost::scoped_lock -


i'm looking code shortening idea. i'm using boost::scoped_lock lock boost::mutex want shorten amount of code i'm writing.

currently have mutex defined in class , member field called _sync. when want lock, have write:

scoped_lock<mutex> lock(_sync); 

the tricky part scoped lock, assume if write static function return scoped_lock, unlock gets out of function scope of static function:

static scoped_lock<mutex> lock(mutex& sync) {     return scoped_lock<mutex>(sync); } 

this approach make easy type:

public void object::modify() {     lock(_sync); // <-- nice , short! ;)      // modify object     //..     // mutex unlocked when leave scope of modify } 

is assumption correct? scoped_lock unlock when it's returned static function?

#define lock(a) scoped_lock<mutex> scopedlockvar(a)  public void object::modify() {     lock(_sync); // <-- nice , short! ;)      // modify object     //..     // mutex unlocked when leave scope of modify } 

you should use safe name define... compiler uses find , replace defines...


Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -