메뉴얼 참조 카운터 -_-;

프로그래밍 일반에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

메뉴얼 참조 카운터 -_-;

Post by 비회원 »

안녕하세요

메뉴얼로 참조 카운트를 조작하는게 좋을지...

전 서버 프로그래머-_- 입니다.

IO부분에서의 샘풀 코드 입니다.
/////////////////////////////////////////////////////////////////////////////////////////
Msg* p = new Msg();

User1->Send(p);
User2->Send(p);

if ( p->refcount == 0 )
delete p;
/////////////////////////////////////////////////////////////////////////////////////////

void UserClass::Send( Msg *p )
{
p->addref();

Enqueue(p);
}


void UserClass::realSend()
{
Msg* p = Dequeue();
send(p);
p->release();
if ( p->refcount == 0 )
delete p;
}
/////////////////////////////////////////////////////////////////////////////////////////

메세지를 보낼때 루틴입니다. 보시면 addref와 release 를 메뉴얼로 관리하구 있습니다.

이것보다는 깔끔하게 만들어서 사용중입니다만 -_-; 다른 이쁜 방법을 찾고 있습니다. 메뉴얼로 관리한다는게

걸리네요 -0-; 근데 코드를 이해는 하시려나 모르겟습니다. 내일 출근해야 대서-_-;;;;; OTL

ref 컨테이너를 만들거나 다른 어떤 깔끔한 방법을 아시는 분께서는 -_- 제보 부탁드려요-_-;
비회원

Re: 메뉴얼 참조 카운터 -_-;

Post by 비회원 »

비회원 wrote:안녕하세요

메뉴얼로 참조 카운트를 조작하는게 좋을지...

전 서버 프로그래머-_- 입니다.

IO부분에서의 샘풀 코드 입니다.
/////////////////////////////////////////////////////////////////////////////////////////
Msg* p = new Msg();

User1->Send(p);
User2->Send(p);

if ( p->refcount == 0 )
delete p;
/////////////////////////////////////////////////////////////////////////////////////////

void UserClass::Send( Msg *p )
{
p->addref();

Enqueue(p);
}


void UserClass::realSend()
{
Msg* p = Dequeue();
send(p);
p->release();
if ( p->refcount == 0 )
delete p;
}
/////////////////////////////////////////////////////////////////////////////////////////

메세지를 보낼때 루틴입니다. 보시면 addref와 release 를 메뉴얼로 관리하구 있습니다.

이것보다는 깔끔하게 만들어서 사용중입니다만 -_-; 다른 이쁜 방법을 찾고 있습니다. 메뉴얼로 관리한다는게

걸리네요 -0-; 근데 코드를 이해는 하시려나 모르겟습니다. 내일 출근해야 대서-_-;;;;; OTL

ref 컨테이너를 만들거나 다른 어떤 깔끔한 방법을 아시는 분께서는 -_- 제보 부탁드려요-_-;
boost::shared_ptr 을 쓰세요..
Locked