do cleanup inside inprocessapplication destrutor (#676)

This commit is contained in:
pan-wang 2018-03-15 16:47:21 -07:00 committed by GitHub
parent 8e54e792fb
commit e5661a46b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 62 additions and 54 deletions

View File

@ -29,7 +29,15 @@ IN_PROCESS_APPLICATION::IN_PROCESS_APPLICATION(
IN_PROCESS_APPLICATION::~IN_PROCESS_APPLICATION() IN_PROCESS_APPLICATION::~IN_PROCESS_APPLICATION()
{ {
// TODO check if anything else needs to be cleaned up if (m_hLogFileHandle != INVALID_HANDLE_VALUE)
{
m_Timer.CancelTimer();
CloseHandle(m_hLogFileHandle);
m_hLogFileHandle = INVALID_HANDLE_VALUE;
}
m_hThread = NULL;
s_Application = NULL;
} }
__override __override

View File

@ -15,8 +15,8 @@ public:
~IN_PROCESS_APPLICATION(); ~IN_PROCESS_APPLICATION();
__override __override
VOID VOID
ShutDown(); ShutDown();
VOID VOID
SetCallbackHandles( SetCallbackHandles(
@ -35,43 +35,43 @@ public:
// Executes the .NET Core process // Executes the .NET Core process
HRESULT HRESULT
ExecuteApplication( ExecuteApplication(
VOID VOID
); );
VOID VOID
ReadStdErrHandleInternal( ReadStdErrHandleInternal(
VOID VOID
); );
VOID VOID
CloseStdErrHandles( CloseStdErrHandles(
VOID VOID
); );
HRESULT HRESULT
LoadManagedApplication( LoadManagedApplication(
VOID VOID
); );
VOID VOID
LogErrorsOnMainExit( LogErrorsOnMainExit(
HRESULT hr HRESULT hr
); );
REQUEST_NOTIFICATION_STATUS REQUEST_NOTIFICATION_STATUS
OnAsyncCompletion( OnAsyncCompletion(
DWORD cbCompletion, DWORD cbCompletion,
HRESULT hrCompletionStatus, HRESULT hrCompletionStatus,
IN_PROCESS_HANDLER* pInProcessHandler IN_PROCESS_HANDLER* pInProcessHandler
); );
REQUEST_NOTIFICATION_STATUS REQUEST_NOTIFICATION_STATUS
OnExecuteRequest OnExecuteRequest
( (
IHttpContext* pHttpContext, IHttpContext* pHttpContext,
IN_PROCESS_HANDLER* pInProcessHandler IN_PROCESS_HANDLER* pInProcessHandler
); );
VOID VOID
StopCallsIntoManaged( StopCallsIntoManaged(
@ -90,10 +90,10 @@ public:
} }
static static
IN_PROCESS_APPLICATION* IN_PROCESS_APPLICATION*
GetInstance( GetInstance(
VOID VOID
) )
{ {
return s_Application; return s_Application;
} }
@ -143,36 +143,36 @@ private:
static IN_PROCESS_APPLICATION* s_Application; static IN_PROCESS_APPLICATION* s_Application;
VOID VOID
SetStdOut( SetStdOut(
VOID VOID
); );
static static
VOID VOID
ExecuteAspNetCoreProcess( ExecuteAspNetCoreProcess(
_In_ LPVOID pContext _In_ LPVOID pContext
); );
static static
VOID VOID
ReadStdErrHandle ReadStdErrHandle
( (
_In_ LPVOID pContext _In_ LPVOID pContext
); );
HRESULT HRESULT
SetEnvironementVariablesOnWorkerProcess( SetEnvironementVariablesOnWorkerProcess(
VOID VOID
); );
static static
INT INT
FilterException(unsigned int code, struct _EXCEPTION_POINTERS *ep); FilterException(unsigned int code, struct _EXCEPTION_POINTERS *ep);
HRESULT HRESULT
RunDotnetApplication( RunDotnetApplication(
DWORD argc, DWORD argc,
CONST PCWSTR* argv, CONST PCWSTR* argv,
hostfxr_main_fn pProc hostfxr_main_fn pProc
); );
}; };