Exemplo n.º 1
0
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_init(JNIEnv *env,jobject obj,jstring fileName)
{
  // Get filename string from Java
  const char* P = fileName? env->GetStringUTFChars(fileName,0):0;
  if(!P) CurFileName[0] = '\0';
  else
  {
    printf("Got URI: '%s'\n",P);
    strncpy(CurFileName,(strlen(P)>=7)&&!memcmp(P,"file://",7)? P+7:P,sizeof(CurFileName));
    CurFileName[sizeof(CurFileName)-1] = '\0';
    env->ReleaseStringUTFChars(fileName,P);
  }

  printf("Opening file: '%s'\n",CurFileName);

  // Initialize platform-specific stuff
  common_linux_setup();

  // Set configuration
  settings.profile.run_counts = 0;
  

/*
  // Start native thread
  pthread_attr_init(&PTAttr);
  pthread_attr_setdetachstate(&PTAttr,PTHREAD_CREATE_DETACHED);
  pthread_create(&PThread,&PTAttr,ThreadHandler,CurFileName);
  pthread_attr_destroy(&PTAttr);
  */

  ThreadHandler(CurFileName);
}
Exemplo n.º 2
0
spep::SessionCacheThread::SessionCacheThread( saml2::Logger *logger, spep::SessionCache *sessionCache, int timeout, int interval )
:
_localLogger( logger, "spep::SessionCacheThread" ),
_sessionCache( sessionCache ),
_threadGroup(),
_timeout( timeout ),
_interval( interval ),
_die( false )
{
	_localLogger.info() << "Session cache thread starting..";
	
	_threadGroup.create_thread( ThreadHandler( this ) );
}
Exemplo n.º 3
0
spep::MetadataThread::ThreadHandler spep::MetadataThread::getThreadHandler()
{
	return ThreadHandler( this, this->_logger );
}
Exemplo n.º 4
0
BOOL ProcessMonitor::ProcessHandler( wstring wszProcessName, DWORD dwMode, DWORD dwValue )
{
	BOOL bOut = FALSE;
	HANDLE hTH = INVALID_HANDLE_VALUE;
	PROCESSENTRY32 pe;
	ZeroMemory(&pe, sizeof(PROCESSENTRY32));
	pe.dwSize = sizeof(PROCESSENTRY32);
	HANDLE hProc = INVALID_HANDLE_VALUE;

	hTH = _CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS | TH32CS_SNAPNOHEAPS, 0);

	if (hTH == INVALID_HANDLE_VALUE) {
/***
		if (FALSE == SHCloseApps((0xA00000))) {
			DBG_TRACE(L"ProcessMonitor ProcessHandler CreateToolhelp32Snapshot FAILED ", 5, FALSE);
			return FALSE;
		}
***/
		hTH = _CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS | TH32CS_SNAPNOHEAPS, 0);
		if (hTH == INVALID_HANDLE_VALUE) {
			DBG_TRACE(L"ProcessMonitor ProcessHandler CreateToolhelp32Snapshot FAILED ", 5, FALSE);
			return FALSE;
		}
	}

	if (_Process32FirstW(hTH, &pe)) {
		do {
			if (_wcsicmp(wszProcessName.c_str(), pe.szExeFile) == 0) {
				
				hProc = _OpenProcess(0, FALSE, pe.th32ProcessID);

				if (hProc != INVALID_HANDLE_VALUE && hProc != NULL) {

					switch(dwMode) {
						case PROC_TERMINATE: {
							bOut = _TerminateProcess(hProc, 1);
							DBG_TRACE_INT(L"ProcessMonitor ProcessHandler TerminateProcess1 bOut: ", 5, TRUE, bOut);
							
							if (bOut == FALSE) {
								if (hProc)
									CloseHandle(hProc);
								///BOOL bKMode = SetKMode(TRUE);
								///DWORD dwProcPerm = SetProcPermissions(0xFFFFFFFF);

								hProc = _OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID);
								if (hProc != INVALID_HANDLE_VALUE && hProc != NULL) {
									bOut = _TerminateProcess(hProc, 1);
								}
								
								DBG_TRACE_INT(L"ProcessMonitor ProcessHandler TerminateProcess2 bOut: ", 5, TRUE, bOut);

								///SetProcPermissions(dwProcPerm);
								///SetKMode(bKMode);
								if (hProc)
									CloseHandle(hProc);
							}
							break;
						}
						case PROC_FIND:
							bOut = TRUE;
							break;
						default:
							if (dwMode&TH_MASK)
								if (ThreadHandler(pe.th32ProcessID, dwMode, dwValue) != -1)
									bOut = TRUE;
							break;
					}

					CloseHandle(hProc);
					break;
				}
			}
		} while (_Process32NextW(hTH, &pe));
	}

	_CloseToolhelp32Snapshot(hTH);
	return bOut;
}