Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
75
Server/NFAuthTool/NFAuthServer/Nave/NFThreadManager.h
Normal file
75
Server/NFAuthTool/NFAuthServer/Nave/NFThreadManager.h
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* @file NFThreadManager.h
|
||||
* @brief Auto ThreadManager 클래스
|
||||
* @remarks
|
||||
* @author 강동명(edith2580@gmail.com)
|
||||
* @date 2009-04-02
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define WINDOWS_LEAN_AND_MEAN
|
||||
|
||||
#include <windows.h>
|
||||
#include <process.h>
|
||||
|
||||
#include "NFSync.h"
|
||||
#include "NFThread.h"
|
||||
|
||||
namespace Nave {
|
||||
/**
|
||||
* @class NFThreadManager
|
||||
* @brief 스레드 매니져
|
||||
* @remarks
|
||||
* 1) NFThread 를 상속받은 녀석 \r\n
|
||||
* \r\n
|
||||
* Nave::NFThreadManager::Run(this); \r\n
|
||||
* Nave::NFThreadManager::Stop(this, 2000); \r\n
|
||||
* \r\n
|
||||
* 2) 스레드 매니져를 사용하려면 \r\n
|
||||
* Nave::NFThreadManager::GetInstance().Register( new CTest(this) ); \r\n
|
||||
* \r\n
|
||||
* // 소멸시 자동으로 UnRegister가 호출되어메모리에서 삭제됨.. \r\n
|
||||
*
|
||||
* @par
|
||||
* @author Edith
|
||||
* @date 2009-04-05
|
||||
*/
|
||||
class NFThreadManager : public Nave::NFSingleton<NFThreadManager>
|
||||
{
|
||||
public:
|
||||
/// NFThreadManager 생성자
|
||||
NFThreadManager();
|
||||
/// NFThreadManager 소멸자
|
||||
virtual ~NFThreadManager();
|
||||
|
||||
/// 스레드를 등록한다. 최대 32개까지 등록할 수 있다.
|
||||
BOOL Register(NFThread* lpThread);
|
||||
/// 모든 스레드를 종료시킨다.
|
||||
BOOL UnRegister();
|
||||
|
||||
/// 매니저를 사용하지 않고, 그냥 실행 시킨다.
|
||||
static HANDLE Run(NFThread* lpThread);
|
||||
/// 매니저를 사용하지 않고, 그냥 종료 시킨다.
|
||||
static BOOL Stop(NFThread* lpThread, unsigned long dwTimeout = INFINITE);
|
||||
|
||||
private:
|
||||
enum {
|
||||
MAX_THREAD_NUM = 32 /// 최대 스레드 개수
|
||||
};
|
||||
|
||||
/// 스레드 객체 포인터
|
||||
NFThread* m_lpThreads[MAX_THREAD_NUM];
|
||||
/// 스레드 핸들
|
||||
HANDLE m_hThreads[MAX_THREAD_NUM];
|
||||
|
||||
/// 스레드 Lock
|
||||
Nave::NFSync m_ThreadLock;
|
||||
|
||||
/// 스레드 개수
|
||||
Nave::uint32 m_nThreadNum;
|
||||
/// UnRegister의 진행여부
|
||||
Nave::uint32 m_bUnRegStarted;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user