LOGIN • JOININ

ICGExecutable 문의

준영님 2017.07.21 15:18 조회 수 : 105

안녕하세요 대표님~~


매치 서버 구조를 말씀해주신 구조로 변경하고 있습니다.



크게 NExecutable 를 상속 받은 스케쥴러를 이용해서


주기적으로 ProcessExecute 를 호출해 줍니다.



그리고 ProcessExecute 함수에서는


이함수가 호출된 시점마다 task를 생성합니다 (ProcessExecute호출 1회당 1task 생성)



이 task 가 하는역할은 


class TimeoutTask 

{

public:

TimeoutTask( TimeoutJobQueue* queue )

: _queue( queue )

{

}


void execute( void )

{

_queue->Handle();

}


private:

TimeoutJobQueue* _queue;

};


단순히 queue 포인터를 이용해 해당 queue 의 Handle() 함수를 호출해주는것이 전부 입니다.


저 task를 구현할떄 ICGExecutable 를 상속받아서 구현해도 될까요?


저 task 는 execute를 1회 호출하고 사라져도 상관없습니다. (1회호출용)


task 가 생성되는 빈도는 NExecutable 에서 ProcessExecute 를 호출할때 마다 입니다


저는 한 tick을 50 밀리세컨드 정도로 잡고 있습니다



여기서 궁금한것이 있는데


NExecutable  에서 주기적으로 ProcessExecute  를 호출하는 쓰레드와


ICGExecutable 에서 생성된 task의 ProcessExecute 를 호출하는 쓰레드가 서로 영향을 주나요?


NExecutable  를 호출하는 쓰레드가 따로있고


ICGExecutable  의 쓰레드가 따로 존재하는것인지 궁금합니다


아니면 같은 쓰레드 풀에서 둘다 처리를 하게 되는것인지요~~