synchronized block in C++ (blog/050807) to upper level
ñ: improved synchronized block in C++

ACriticalSection someCriticalSection;

synchronized(someCriticalSection)
{
    ...
}    

C++ ̷ ڵ带 ŷ ڴٴ ϴ. Lock() Unlock() ȣ ߰ ų ϴ 򰥸 ʿ º ߰ǰų ڵ尡 ϱ.


class AutoLock
{
public:
    AutoLock( ACriticalSection& cs ) : cs(cs)
    {
        cs.Lock();
        cont = true;
    }
    ~AutoLock()
    {
        cs.Unlock();
    }
private:
    ACriticalSection&  cs;
};
{
    AutoLock(someCriticalSection);
    ...
}

ؼ ' ü ڵ Ҹ ڿ 뱸' , synchronized() ͺ ڵ尡 ʽϴ. ׷ ̸ ôµ, Ѱ . ( ģ ڱ ȸ翡 synchronized() ũθ ٴ ⸦ ֱ , Ŷ Ȯ ־ŵ)


class AutoLock
{
public:
    AutoLock( ACriticalSection& cs ) : cs(cs)
    {
        cs.Lock();
        cont = true;
    }
    ~AutoLock()
    {
        cs.Unlock();
    }
    void P()
    {
        cont = false;
    }
    bool C()
    {
        return cont;
    }
private:
    ACriticalSection&  cs;
    bool cont;
};

#define synchronized(A)    for(AutoLock _syncVar(A); _syncVar.C(); _syncVar.P())

for ѹ ǵ ϰ,  _syncVar ڵ ǵ մϴ. ! ! ( `)


׷ ֽϴ. ٸ for Ѵٴ ε, Ʒ ڵ带 .

for( ... )
{
    synchronized(someCriticalSection)
    {
        if( blahblah )
            break;
    }
    // here
}
// there

߰ if blahblah Ǹ, ڵδ there ; , synchronized for DZ here ϴ. synchronized forϱ break continue foró ۵ Ŷ ο ΰ (ǰϴϱ). ̴ ˴ϴ.


Դٰ Visual C++ 6 for Ȯ ó ϴ ƿ ϴ.

// VC6 ٺ Ǵ ǥ ̽

synchronized(someCriticalSection)
{
    ...
}

synchronized(someCriticalSection)
{
    ...
}


׷, - ϰ ã ýϴ.
ٷ ׿. :D

Ȱ
if

ι° ũ а if ٽ ýϴ.

class AutoLock
{
public:
    AutoLock( ACriticalSection& cs ) : cs(cs)
    {
        cs.Lock();
    }
    ~AutoLock()
    {
        cs.Unlock();
    }
    operator bool()
    {
        return true;
    }

private:
    ACriticalSection&  cs;
};

#define synchronized(A)        if( AutoLock _syncVar = A )

˴ϴ+_+!

ڵ嵵 ξ ª, for ɵ پϴ. if ȿ ο ִ ó ׿. (...)

׸ ϳ !




VC6 ۵մϴ. (...)







ƴϵüifóϰfor¾ȱ׷




. ACriticalSection 꿡 ''/
±: Ƽ α׷
ۼ: 2005-08-07. 08:35 / : 2005-08-11. 17:08 / [Ʈ]
 
Tracked from rein's world (07-08-14 12:31)
: Lock, lock, lock …
Ƽ α׷ ۼϴ - ó ȣ 츦 - ڿ ϴ κ ȴ. ۼϴ ......more
Tracked from Į`s Story~~ (08-04-16 19:54)
: Java Style ȭ ϱ (ũλ)
̸ ϱ ... ȭ ǥ ô. It`s so Cool~~~~!! ......more
 
everclear (05-08-07 10:32)
ڵ尡 ִ ű ;-;

.......... ΰ  
Azyu (05-08-07 10:35)
;; 
everclear (05-08-07 10:38)
׷ غ... ȭ Ӹ ƴ϶ Ȳ ְڴµ ;;

ݴ Ŷ.....(̰ ƴѰ) 
ipkn (05-08-07 19:00)
if dynamic_cast ؼ eff C++ ʿ 됬.

B : public A ϶

if (B* pB = dynamic_cast<B*>(pA)) 
(05-08-09 01:36)
eff effective ϱ efficient ϱ?;;
effective о ϱ ;
efficient ϰ ڸ C++ in depth ø ƴϴ. 
Rica (05-08-09 13:51)
everclear/ δ ص ص Ŵϱ ʾƵ . ()
, ʹݿ ' ü ڵ Ҹ ڿ 뱸' ׷ . auto_ptr ǥ̰, ݱ Ƽ  ־. ׷ 뱸 ؼ ƴ϶ ̶ .

Azyu/ ȭսô!

ipkn/ ׷;; װ ġä ߴ ű⿡ ε orz

/ efficient å ø. ׷ ű⿡  ǹ̰? 
(05-08-10 00:50)
.. efficient ?!?! ø ƴϾ? .
ǹ.. ƴ ǹ̴ . -_-; 
Rica (05-08-10 12:59)
, ãƺ å ƴѵ''; C++ in depth ø ԵǾ ʰ. 
(05-08-11 14:21)
å ϸ .. .. ..
ƴ , ƴϰ..

[] 
sanybyme (07-12-17 10:11)
ּҸ ۰ڽϴ~ 
   

ݸ ۼϰ, "." Ȥ "?" Ѵ.
 
ricanet.com
ݸ α

Ұ :: α :: ::

 1 , Rica: 3ֳ   
4 , ShoulderTang: ,, п
5 , Rica: @z0o0 , ȳϼ
5 , Rica: @ShoulderTang ĥ
9 , z0o0: ȳ缼ؾƺ! ǡ
9 , ShoulderTang: ̾ϴ
9 , Rica: @ShoulderTang ..
9 , shoulderTang: tree.htm
9 , Rica: @ShoulderTang Ʈ
10 , ShoulderTang: Ȥ tree
17 , Rica: ϡ
17 , Rica: DB ᡦ
17 , Rica: mysql ̺ 顦
17 , Rica: PHP only Ϸ
17 , Rica:
17 , Rica: ̽ ڹٽũ
17 , ????Spin
18 , Rica: @nori ټü ?
18 , nori: C#
18 , Ұ
19 , young: Ѵ١
21 , Ʈ: ڡ
22 , Rica: @û 
23 , û: 
23 , MMORPG
24 , ϾϾ:
30 , IMG_0688
30 , IMG_0677
30 , IMG_0669
30 , IMG_0647
30 , IMG_0638
30 , IMG_0637
30 , IMG_0632
30 , IMG_0626
30 , IMG_0583
30 , IMG_0576
30 , IMG_0572
30 , IMG_0571
30 , IMG_0545
30 , IMG_0503
30 , IMG_0477
30 , IMG_0476
30 , IMG_0471
30 , IMG_0468
30 , IMG_0411
30 , IMG_0395
30 , IMG_0388
30 , IMG_0286
30 , IMG_0279
30 , IMG_0271
30 , IMG_0254
30 , IMG_0247
30 , IMG_0235
30 , IMG_0226
30 , IMG_0214
30 , IMG_0208
30 , IMG_0185
30 , IMG_0180
30 , IMG_0168
30 , IMG_0113
30 , IMG_0101


XML-RSS:BlogαRSS
XML-RSS:PicturesRSS