void tContour::SetPlanes(const std::vector<double>& vPlanes) { // cleaning memory CleanMemory(); m_vPlanes = vPlanes; };
void CNetManager::ServerClose() { m_pIocpHandler->CloseAllThreads(THREAD_DIE_WAITTIME); // IOCP Worker Thread Close ServerLog()->Log("IOCP Worker Thread All Died."); m_pProcessThread->End(THREAD_DIE_WAITTIME); // ProcesssThread Close ServerLog()->Log("Process Thread Died."); // 모든 사용자 종료 CUserList * pUserList = SMemManager()->GetUserList(); CUser * pUser = pUserList->GetFirstUser(); while(pUser != NULL) { m_pPacketProcess->CloseClient(pUser, false); pUser = pUserList->GetNext(pUser); } m_pAcceptThread->End(THREAD_DIE_WAITTIME); ServerLog()->Log("Accept Process Thread Die."); // 타이머 해제 윈도우 2000 전용함수 Platform SDK 업데이트 해야됨 if(!DeleteTimerQueueTimer(NULL, m_hTimerQTimer, NULL)) { ServerLog()->Log("Delete Timer Error."); } m_hTimerQTimer = NULL; CleanMemory(); InitializeVariable(); delete SCMemoryManager::GetMemManager(); // 메모리 관리 클래스 소멸 delete SCProfile::GetProfile(); // Profile 클래스 소멸 ServerLog()->Log("Server Close.\n"); }
void tContour::SetSecondaryGrid(int iCol, int iRow) { // cleaning work matrices if allocated CleanMemory(); m_iColSec=qMax(iCol,2); m_iRowSec=qMax(iRow,2); }
bool CPacketProcess::DBInitialize(char * szDBname, char * szIP, char * szUser, char * szPassword) { m_pDBManager = new CDBManager(szDBname, szIP, szUser, szPassword); if(!m_pDBManager) { ServerLog()->Log("Database Manager Creation Error."); CleanMemory(); return false; } return true; }
int main () { hash_table hash_array; hash_table* hash_info = &hash_array; hash_info->size = 256; CreateHash(hash_info); if (TestAddFunction(hash_info) != 0) printf("Failed in TestAddFunction"); if (TestSearchFunction(hash_info) != 0) printf("Failed in TestSearchFunction"); if (TestRemoveFunction(hash_info) != 0) printf("Failed in TestRemoveFunction"); if (TestIterators(hash_info) != 0) printf("Failed in TestIterators"); hash_info = ResizeHash(hash_info); if (hash_info == NULL) printf("Failed in ResizeHash"); CleanMemory(hash_info); return 0; }
// 메모리 생성 bool SCMemoryManager::MemoryAlloc() { m_pUserList = new CUserList; m_pUserMemPool = new CMemPooler<CUser>(MAX_USER+2); m_pSendQueueMemPool = new CMemPooler<CSendQueue>(MAX_USER+1); m_pSendPacketMemPool = new CMemPooler<CSendPacket>(MAX_USER * 30); m_pRecvPacketMemPool = new CMemPooler<CRecvPacket>(MAX_USER); m_pRecvBufferMemPool = new CMemPooler<CIOBuffer>(MAX_USER); if(!m_pUserMemPool || !m_pSendPacketMemPool || !m_pRecvBufferMemPool || !m_pRecvPacketMemPool || !m_pUserList || !m_pSendQueueMemPool) { ServerLog()->Log("Memory Pool Create failed."); CleanMemory(); return false; } return true; }
int main(int argc, char *argv[]) { BOOL bRc = FALSE; BOOL clean = TRUE; if (0 != PAL_Initialize(argc,argv)) { return FAIL; } /* initialize strings */ #if WIN32 szTestRootDir = convert("/at_root_directory_PALTEST"); #endif szTestDir = convert("test_ directory"); szTestSubDir = convert( ".\\./././../test2/./../../////////createdirectoryw" "\\\\/test2/test_ directory\\sub"); szTest2SubDir = convert("test_ directory/sub\\sub_sub"); szTest2SubDirWinSlash = convert("test_ directory/sub\\sub_sub\\\\"); szTest2SubDirUnixSlash = convert("test_ directory/sub\\sub_sub///"); /* Platform dependent cases:- * test for WIN32, create directory at the root. * using /directory_name format */ #if WIN32 bRc = CreateDirectoryW(szTestRootDir, NULL); if (bRc != TRUE) { Trace("CreateDirectoryW: Failed creating the directory " "\"%S\" with the error code %ld.\n", szTestRootDir,GetLastError()); CleanMemory(); Fail(""); } /*clean szTestRootDir */ bRc = RemoveDirectoryW(szTestRootDir); if (! bRc) { clean = bRc; Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestRootDir, GetLastError()); } #endif /* * create subdirectory "test_directory//sub//sub_sub" * while parent directory does not exist. */ bRc = CreateDirectoryW(szTest2SubDir, NULL); if (bRc == TRUE) { bRc = RemoveDirectoryW(szTest2SubDir); if (! bRc ) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTest2SubDir, GetLastError()); } Trace("CreateDirectoryW: Succeeded creating the directory\"%S\" while" " its parent directory does not exists. It should fail.\n", szTest2SubDir); CleanMemory(); Fail(""); } /* create directory tree one by one * first create "test_dir" */ bRc = CreateDirectoryW(szTestDir, NULL); if (bRc != TRUE)/*failed creating the path*/ { Trace("CreateDirectoryW: Failed creating the directory " "\"%S\" with the error code %ld.\n", szTestDir,GetLastError()); CleanMemory(); Fail(""); } /* create the sub directory test_directory//sub */ bRc = CreateDirectoryW(szTestSubDir, NULL); if (bRc != TRUE)/*failed creating the path*/ { Trace("CreateDirectoryW: Failed creating the directory " "\"%S\" with the error code %ld.\n", szTestSubDir , GetLastError()); /* cleaning... remove parent directory */ bRc = RemoveDirectoryW(szTestDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with an error code %ld.\n", szTestDir, GetLastError()); } CleanMemory(); Fail(""); } /* * the director structure is test_directory//sub * test creating directory " test_directory//sub//sub_sub" */ bRc = CreateDirectoryW(szTest2SubDir, NULL); if (bRc != TRUE) { Trace("CreateDirectoryW: Failed creating the directory " "\"%S\" with the error code %ld.\n", szTest2SubDir , GetLastError()); /* remove parent directory test_directory//sub */ bRc = RemoveDirectoryW(szTestSubDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestSubDir, GetLastError()); } /* remove parent directory test_directory */ bRc = RemoveDirectoryW(szTestDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestDir, GetLastError()); } CleanMemory(); Fail(""); } /* Remove Directiry szTest2SubDir*/ bRc = RemoveDirectoryW(szTest2SubDir); if (! bRc) { clean = bRc; Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTest2SubDir, GetLastError()); } /* * the director structure is test_directory//sub * test creating directory " test_directory//sub//sub_sub\\\\" */ bRc = CreateDirectoryW(szTest2SubDirWinSlash, NULL); if (bRc != TRUE) { Trace("CreateDirectoryW: Failed creating the directory " "\"%S\" with the error code %ld.\n", szTest2SubDirWinSlash , GetLastError()); /* remove parent directory test_directory//sub */ bRc = RemoveDirectoryW(szTestSubDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestSubDir, GetLastError()); } /* remove parent directory test_directory */ bRc = RemoveDirectoryW(szTestDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestDir, GetLastError()); } CleanMemory(); Fail(""); } /* Remove Directiry szTest2SubDirWinSlash */ bRc = RemoveDirectoryW(szTest2SubDirWinSlash); if (! bRc) { clean = bRc; Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTest2SubDirWinSlash, GetLastError()); } /* * the director structure is test_directory//sub * test creating directory " test_directory//sub//sub_sub///" */ bRc = CreateDirectoryW(szTest2SubDirUnixSlash, NULL); if (bRc != TRUE) { Trace("CreateDirectoryW: Failed creating the directory " "\"%S\" with the error code %ld.\n", szTest2SubDirUnixSlash , GetLastError()); /* remove parent directory test_directory//sub */ bRc = RemoveDirectoryW(szTestSubDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestSubDir, GetLastError()); } /* remove parent directory test_directory */ bRc = RemoveDirectoryW(szTestDir); if (! bRc) { Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestDir, GetLastError()); } CleanMemory(); Fail(""); } /* Remove Directiry szTest2SubDirUnixSlash.*/ bRc = RemoveDirectoryW(szTest2SubDirUnixSlash); if (! bRc) { clean = bRc; Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTest2SubDirUnixSlash, GetLastError()); } /*clean parent szTestSubDir */ bRc = RemoveDirectoryW(szTestSubDir); if (! bRc) { clean = bRc; Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestSubDir, GetLastError()); } /*clean parent szTestDir */ bRc = RemoveDirectoryW(szTestDir); if (! bRc) { clean = bRc; Trace("CreateDirectoryW: RemoveDirectoryW failed to remove " "\"%S\" with the error code %ld.\n", szTestDir, GetLastError()); } if(! clean) { CleanMemory(); Fail(""); } CleanMemory(); PAL_Terminate(); return PASS; }
SCMemoryManager::~SCMemoryManager() { CleanMemory(); }
int main(int argc, char **argv) { MPI_Init(&argc, &argv); double start_time, end_time; // Print some info omp_set_nested(1); int maxThreads = omp_get_max_threads(); printf("Available threads: %d\n", maxThreads); // Initialize the array. InitArray(); // Print data if in debug mode. if (DEBUG) { printf("===== BEFORE QUICK SORT (SEQ) =====\n\n"); PrintArray(); printf("===================================\n\n\n"); } // Start timer. start_time = MPI_Wtime(); // Split into 8 pieces and sort int subArraySize = ITEMS / maxThreads; int maxInd = ((maxThreads - 1) * subArraySize) - 1 + subArraySize; int i; #pragma omp parallel for for (i = 0; i < maxThreads; i++) { QuickSort(v, i * subArraySize, (i * subArraySize) - 1 + subArraySize); } // Sort the pieces int j; for (i = 0; i < ITEMS / maxThreads; i++) { for (j = 0; j < maxThreads; j++) { sorted[maxThreads * i + j] = v[subArraySize * j + i]; } } #pragma omp parallel for for (i = 0; i < subArraySize; i++) { QuickSort(sorted, i * maxThreads, i * maxThreads + maxThreads - 1); } // Stop timer. end_time = MPI_Wtime(); // Print data if in debug mode. if (DEBUG) { printf("===== AFTER QUICK SORT (SEQ) ======\n\n"); PrintArray(); printf("===================================\n\n"); } else { printf("Lowest: %d\n", sorted[0]); printf("Highest: %d\n", sorted[ITEMS - 1]); } double time_taken = (end_time - start_time); printf("Execution time: %fs\n", time_taken); CleanMemory(); }
// 서버 스타트 bool CNetManager::ServerStart() { // 싱글턴으로 구현된 메모리 관리 클래스를 생성한다. SCMemoryManager::CreateMemManager(new SCMemoryManager); // 싱글턴으로 구현된 Profile 클래스를 생성한다. SCProfile::CreateProfile(new SCProfile); ServerLog()->Log("Chatting Server version 0.0.1 Startting.\n"); // config.ini 파일에서 서버 설정을 읽어 온다. // 여기 설정만 바꾸면 재 컴파일 안해도 되자나.. 캬캬.. SProfile()->SetFile("config.ini"); SProfile()->SetSection("Server"); int nPort = SProfile()->GetPrivateProfileInt("Port", 14400); ServerLog()->Log("Server Accept Port : %d", nPort); int nMaxNumberOfConcurrentThreads = SProfile()->GetPrivateProfileInt("MaxNumberOfConcurrentThreads", 0); ServerLog()->Log("MaxNumberOfConcurrentThreads : %d", nMaxNumberOfConcurrentThreads); int nNumOfPooledThread = SProfile()->GetPrivateProfileInt("ThreadPoolNumber", 0); ServerLog()->Log("ThreadPoolNumber : %d", nNumOfPooledThread); // 패킷 프로세스 생성 if((m_pPacketProcess = new CPacketProcess) == NULL) { ServerLog()->Log("CPacketProcess Create Error."); CleanMemory(); return false; } // IOCP 초기화 if(!IOCPInitialize(nMaxNumberOfConcurrentThreads, nNumOfPooledThread)) { ServerLog()->Log("IOCP Initialize Error."); CleanMemory(); return false; } ServerLog()->Log("IOCP Initialize Success."); // 메모리 할당 if(!SMemManager()->MemoryAlloc()) { ServerLog()->Log("Memory Alloc Error."); CleanMemory(); return false; } ServerLog()->Log("Memory Pool Create Success."); // 프로세스 스레드 생성 m_pProcessThread = new CProcessThread(); if(m_pProcessThread == NULL) { ServerLog()->Log("ProcessThread Create Error."); CleanMemory(); return false; } // Accept 스레드 생성 m_pAcceptThread = new CAcceptThread(m_pIocpHandler, m_pPacketProcess); if(m_pAcceptThread == NULL) { ServerLog()->Log("Accept Process Thread Create Error."); CleanMemory(); return false; } // 소켓 개설 if(!m_pAcceptThread->SocketInitialize(nPort)) { ServerLog()->Log("Socket Initialize Error."); CleanMemory(); return false; } ServerLog()->Log("Server Socket Initialize Success."); #define USER_ALIVECHECK_TIME_TEST 15 * 1000 // 15초 일단 테스트를 위해... // 타이머 생성 윈도우 2000 전용함수 Platform SDK 업데이트 해야됨 // 멀티샷 50분이가로 설정 시작은 15초 후에... // 이게 어떻게 동작하는거지..???? -_-;; // waitable timer안쓰고 이거 쓰는 이유는? // 내부적으로 타이머 큐를 큐를 가지고 있고 스레드 풀을 이용하는 거 같다. if(!CreateTimerQueueTimer(&m_hTimerQTimer, NULL, WaitTimeProc, NULL, USER_ALIVECHECK_TIME_TEST, USER_ALIVECHECK_TIME_TEST /*USER_ALIVECHECK_TIME*/, 0)) { ServerLog()->Log("Create Timer Error."); CleanMemory(); return false; } // 스레드 스타트 m_pProcessThread->Start(); m_pAcceptThread->Start(); m_pPacketProcess->SetProcessThread(m_pProcessThread); m_pPacketProcess->Initialize(); m_bServerRunning = true; ServerLog()->Log("Server Initialize Success."); return true; }
CPacketProcess::~CPacketProcess() { CleanMemory(); }
Settings::~Settings() { CleanMemory(); }
void Settings::ReadVer7(Stream* stream) { CleanMemory(); fullscreen = stream->ReadBoolean(); interpolatePixels = stream->ReadBoolean(); noBorder = stream->ReadBoolean(); showCursor = stream->ReadBoolean(); scale = stream->ReadDword(); sizeable = stream->ReadBoolean(); stayOnTop = stream->ReadBoolean(); windowColor = stream->ReadDword(); changeResolution = stream->ReadBoolean(); colorDepth = stream->ReadDword(); resolution = stream->ReadDword(); frequency = stream->ReadDword(); noButtons = stream->ReadBoolean(); vsync = stream->ReadBoolean(); fullscreenKey = stream->ReadBoolean(); helpKey = stream->ReadBoolean(); quitKey = stream->ReadBoolean(); saveKey = stream->ReadBoolean(); screenshotKey = stream->ReadBoolean(); closeSecondary = stream->ReadBoolean(); priority = stream->ReadDword(); freeze = stream->ReadBoolean(); showProgress = stream->ReadDword(); if (showProgress == LpbtCustom) { backImage = stream->ReadBitmapOld(); frontImage = stream->ReadBitmapOld(); } if (stream->ReadBoolean()) loadImage = stream->ReadBitmapOld(); loadTransparent = stream->ReadBoolean(); loadAlpha = stream->ReadDword(); scaleProgress = stream->ReadBoolean(); iconImage = stream->Deserialize(false); displayErrors = stream->ReadBoolean(); writeErrors = stream->ReadBoolean(); abortErrors = stream->ReadBoolean(); treatUninitializedVariablesAsZero = stream->ReadBoolean(); author = stream->ReadString(); versionString = stream->ReadString(); stream->ReadTimestamp(); information = stream->ReadString(); unsigned int count = stream->ReadDword(); while(count--) { std::string name = stream->ReadString(); std::string value = stream->ReadString(); gmkHandle->constants.push_back(std::pair<std::string, std::string>(name, value)); } major = stream->ReadDword(); minor = stream->ReadDword(); release = stream->ReadDword(); build = stream->ReadDword(); company = stream->ReadString(); product = stream->ReadString(); copyright = stream->ReadString(); description = stream->ReadString(); }
void Settings::ReadVer81(Stream* stream) { CleanMemory(); Stream* settingsStream = stream->Deserialize(); fullscreen = settingsStream->ReadBoolean(); interpolatePixels = settingsStream->ReadBoolean(); noBorder = settingsStream->ReadBoolean(); showCursor = settingsStream->ReadBoolean(); scale = settingsStream->ReadDword(); sizeable = settingsStream->ReadBoolean(); stayOnTop = settingsStream->ReadBoolean(); windowColor = settingsStream->ReadDword(); changeResolution = settingsStream->ReadBoolean(); colorDepth = settingsStream->ReadDword(); resolution = settingsStream->ReadDword(); frequency = settingsStream->ReadDword(); noButtons = settingsStream->ReadBoolean(); vsync = settingsStream->ReadBoolean(); noScreenSaver = settingsStream->ReadBoolean(); fullscreenKey = settingsStream->ReadBoolean(); helpKey = settingsStream->ReadBoolean(); quitKey = settingsStream->ReadBoolean(); saveKey = settingsStream->ReadBoolean(); screenshotKey = settingsStream->ReadBoolean(); closeSecondary = settingsStream->ReadBoolean(); priority = settingsStream->ReadDword(); freeze = settingsStream->ReadBoolean(); showProgress = settingsStream->ReadDword(); if (showProgress == LpbtCustom) { backImage = settingsStream->ReadBitmap(); frontImage = settingsStream->ReadBitmap(); } if (settingsStream->ReadBoolean()) loadImage = settingsStream->ReadBitmap(); loadTransparent = settingsStream->ReadBoolean(); loadAlpha = settingsStream->ReadDword(); scaleProgress = settingsStream->ReadBoolean(); iconImage = settingsStream->Deserialize(false); displayErrors = settingsStream->ReadBoolean(); writeErrors = settingsStream->ReadBoolean(); abortErrors = settingsStream->ReadBoolean(); unsigned int errorFlags = settingsStream->ReadDword(); treatUninitializedVariablesAsZero = (errorFlags & 0x01) == 0x01; argumentError = (errorFlags & 0x02) == 0x02; author = settingsStream->ReadString(); versionString = settingsStream->ReadString(); settingsStream->ReadTimestamp(); information = settingsStream->ReadString(); major = settingsStream->ReadDword(); minor = settingsStream->ReadDword(); release = settingsStream->ReadDword(); build = settingsStream->ReadDword(); company = settingsStream->ReadString(); product = settingsStream->ReadString(); copyright = settingsStream->ReadString(); description = settingsStream->ReadString(); settingsStream->ReadTimestamp(); delete settingsStream; }
int main () { hash_table hash_array; hash_table* hash_info = &hash_array; hash_info->size = 256; CreateHash(hash_info); struct timespec start, stop; double worktime; // test AddElement unsigned long j; char tmp[LENGTH] = {0}; if (clock_gettime( CLOCK_REALTIME, &start) == -1) { perror ("clock gettime"); return -1; } for ( j = 0; j < 10000; ++j ) { AddElement(GenerateRandomString(tmp), hash_info); } if (clock_gettime( CLOCK_REALTIME, &stop) == -1) { perror ("clock gettime"); return -1; } worktime = ((( stop.tv_sec - start.tv_sec )*1e9 + ( stop.tv_nsec - start.tv_nsec ))*1e-9)/10000; printf ("%.10f sec for AddElement cycle \n", worktime); // test SearchElement if (clock_gettime( CLOCK_REALTIME, &start) == -1) { perror ("clock gettime"); return -1; } for ( j = 0; j < 10000; ++j ) { SearchElement(GenerateRandomString(tmp), hash_info); } if (clock_gettime( CLOCK_REALTIME, &stop) == -1) { perror( "clock gettime" ); return -1; } worktime = ((( stop.tv_sec - start.tv_sec )*1e9 + ( stop.tv_nsec - start.tv_nsec ))*1e-9)/10000; printf("%.10f sec for SearchElement cycle \n", worktime); // test Remove if (clock_gettime( CLOCK_REALTIME, &start) == -1) { perror( "clock gettime" ); return -1; } int k; for ( j = 0; j < 10000; ++j ) { k = Remove(GenerateRandomString(tmp), hash_info); } if (clock_gettime( CLOCK_REALTIME, &stop) == -1) { perror( "clock gettime" ); return -1; } worktime = ((( stop.tv_sec - start.tv_sec )*1e9 + ( stop.tv_nsec - start.tv_nsec ))*1e-9)/10000; printf ("%.10f sec for Remove cycle \n", worktime); // test CleanMemory if (clock_gettime( CLOCK_REALTIME, &start) == -1) { perror ("clock gettime"); return -1; } for ( j = 0; j < 10000; ++j ) { hash_table hash_array; hash_table* hash_info = &hash_array; hash_info->size = 256; CreateHash(hash_info); CleanMemory(hash_info); } if (clock_gettime( CLOCK_REALTIME, &stop) == -1) { perror( "clock gettime" ); return -1; } worktime = ((( stop.tv_sec - start.tv_sec )*1e9 + ( stop.tv_nsec - start.tv_nsec ))*1e-9)/10000; printf ("%.10f sec for CreateHash and CleanMemory cycle\n", worktime); return 0; }
void OpenSMOKE_PARDISO_Unsymmetric::Delete() { CleanMemory(); delete[] perm; }
CListContour::~CListContour() { CleanMemory(); }
tContour::~tContour() { CleanMemory(); }