인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

fhan님의 프로필 이미지
fhan

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

JobTimer

distribute 질문 있습니다

작성

·

223

0

void JobTimer::Distribute(uint64 now)

{

// 한 번에 1 쓰레드만 통과

if (_distributing.exchange(true) == true)

return;

Vector<TimerItem> items;

{

WRITE_LOCK;

while (_items.empty() == false)

{

const TimerItem& timerItem = _items.top();

if (now < timerItem.executeTick)

break;

items.push_back(timerItem);

_items.pop();

}

}

for (TimerItem& item : items)

{

if (JobQueueRef owner = item.jobData->owner.lock())

owner->Push(item.jobData->job);

ObjectPool<JobData>::Push(item.jobData);

}

// 끝났으면 풀어준다

_distributing.store(false);

}

push해줄때 pushonly값을 true로 넘겨주어야 하는 것 아닌가요?

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 라이브 코딩이 반 정도 섞여 있어서
세세한 부분은 잘 조절을 해주시기 바랍니다.

fhan님의 프로필 이미지
fhan

작성한 질문수

질문하기