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()
{
// 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

View File

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