Exemple #1
0
void tContour::SetPlanes(const std::vector<double>& vPlanes)
{   
    // cleaning memory
    CleanMemory();

    m_vPlanes = vPlanes;
};
Exemple #2
0
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");
}
Exemple #3
0
void tContour::SetSecondaryGrid(int iCol, int iRow)
{
    // cleaning work matrices if allocated
    CleanMemory();

    m_iColSec=qMax(iCol,2);
    m_iRowSec=qMax(iRow,2);
}
Exemple #4
0
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;
}
Exemple #6
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;
}
Exemple #7
0
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;
}
Exemple #8
0
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();
}
Exemple #10
0
// 서버 스타트
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;
}
Exemple #11
0
CPacketProcess::~CPacketProcess()
{
	CleanMemory();
}
Exemple #12
0
	Settings::~Settings()
	{
		CleanMemory();
	}
Exemple #13
0
	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();
	}
Exemple #14
0
	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;
}
Exemple #17
0
CListContour::~CListContour()
{
    CleanMemory();
}
Exemple #18
0
tContour::~tContour()
{
    CleanMemory();
}