Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
770918a9
Commit
770918a9
authored
Oct 24, 2013
by
Vincent Povirk
Committed by
Alexandre Julliard
Oct 25, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mscoree: Do a "normal" runtime shutdown from _CorExeMain.
This needs to work differently from CorExitProcess because we need to wait for foreground threads and abort the rest.
parent
6b889fe9
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
2 deletions
+12
-2
corruntimehost.c
dlls/mscoree/corruntimehost.c
+6
-2
metahost.c
dlls/mscoree/metahost.c
+4
-0
mscoree_private.h
dlls/mscoree/mscoree_private.h
+2
-0
No files found.
dlls/mscoree/corruntimehost.c
View file @
770918a9
...
...
@@ -1034,7 +1034,7 @@ __int32 WINAPI _CorExeMain(void)
int
exit_code
;
int
argc
;
char
**
argv
;
MonoDomain
*
domain
;
MonoDomain
*
domain
=
NULL
;
MonoImage
*
image
;
MonoImageOpenStatus
status
;
MonoAssembly
*
assembly
=
NULL
;
...
...
@@ -1101,7 +1101,11 @@ __int32 WINAPI _CorExeMain(void)
HeapFree
(
GetProcessHeap
(),
0
,
argv
);
unload_all_runtimes
();
if
(
domain
)
{
mono_thread_manage
();
mono_jit_cleanup
(
domain
);
}
return
exit_code
;
}
...
...
dlls/mscoree/metahost.c
View file @
770918a9
...
...
@@ -88,6 +88,7 @@ static void (CDECL *mono_free)(void *);
static
MonoImage
*
(
CDECL
*
mono_image_open
)(
const
char
*
fname
,
MonoImageOpenStatus
*
status
);
MonoImage
*
(
CDECL
*
mono_image_open_from_module_handle
)(
HMODULE
module_handle
,
char
*
fname
,
UINT
has_entry_point
,
MonoImageOpenStatus
*
status
);
static
void
(
CDECL
*
mono_install_assembly_preload_hook
)(
MonoAssemblyPreLoadFunc
func
,
void
*
user_data
);
void
(
CDECL
*
mono_jit_cleanup
)(
MonoDomain
*
domain
);
int
(
CDECL
*
mono_jit_exec
)(
MonoDomain
*
domain
,
MonoAssembly
*
assembly
,
int
argc
,
char
*
argv
[]);
MonoDomain
*
(
CDECL
*
mono_jit_init
)(
const
char
*
file
);
static
int
(
CDECL
*
mono_jit_set_trace_options
)(
const
char
*
options
);
...
...
@@ -106,6 +107,7 @@ static void (CDECL *mono_set_verbose_level)(DWORD level);
MonoString
*
(
CDECL
*
mono_string_new
)(
MonoDomain
*
domain
,
const
char
*
str
);
static
char
*
(
CDECL
*
mono_stringify_assembly_name
)(
MonoAssemblyName
*
aname
);
MonoThread
*
(
CDECL
*
mono_thread_attach
)(
MonoDomain
*
domain
);
void
(
CDECL
*
mono_thread_manage
)(
void
);
static
void
(
CDECL
*
mono_thread_pool_cleanup
)(
void
);
static
void
(
CDECL
*
mono_thread_suspend_all_other_threads
)(
void
);
static
void
(
CDECL
*
mono_threads_set_shutting_down
)(
void
);
...
...
@@ -204,6 +206,7 @@ static HRESULT load_mono(CLRRuntimeInfo *This)
LOAD_MONO_FUNCTION
(
mono_free
);
LOAD_MONO_FUNCTION
(
mono_image_open
);
LOAD_MONO_FUNCTION
(
mono_install_assembly_preload_hook
);
LOAD_MONO_FUNCTION
(
mono_jit_cleanup
);
LOAD_MONO_FUNCTION
(
mono_jit_exec
);
LOAD_MONO_FUNCTION
(
mono_jit_init
);
LOAD_MONO_FUNCTION
(
mono_jit_set_trace_options
);
...
...
@@ -221,6 +224,7 @@ static HRESULT load_mono(CLRRuntimeInfo *This)
LOAD_MONO_FUNCTION
(
mono_stringify_assembly_name
);
LOAD_MONO_FUNCTION
(
mono_string_new
);
LOAD_MONO_FUNCTION
(
mono_thread_attach
);
LOAD_MONO_FUNCTION
(
mono_thread_manage
);
LOAD_MONO_FUNCTION
(
mono_trace_set_assembly
);
#undef LOAD_MONO_FUNCTION
...
...
dlls/mscoree/mscoree_private.h
View file @
770918a9
...
...
@@ -145,6 +145,7 @@ extern MonoClass* (CDECL *mono_class_from_mono_type)(MonoType *type);
extern
MonoClass
*
(
CDECL
*
mono_class_from_name
)(
MonoImage
*
image
,
const
char
*
name_space
,
const
char
*
name
);
extern
MonoMethod
*
(
CDECL
*
mono_class_get_method_from_name
)(
MonoClass
*
klass
,
const
char
*
name
,
int
param_count
);
extern
MonoAssembly
*
(
CDECL
*
mono_domain_assembly_open
)(
MonoDomain
*
domain
,
const
char
*
name
);
extern
void
(
CDECL
*
mono_jit_cleanup
)(
MonoDomain
*
domain
);
extern
int
(
CDECL
*
mono_jit_exec
)(
MonoDomain
*
domain
,
MonoAssembly
*
assembly
,
int
argc
,
char
*
argv
[]);
extern
MonoDomain
*
(
CDECL
*
mono_jit_init
)(
const
char
*
file
);
extern
MonoImage
*
(
CDECL
*
mono_image_open_from_module_handle
)(
HMODULE
module_handle
,
char
*
fname
,
UINT
has_entry_point
,
MonoImageOpenStatus
*
status
);
...
...
@@ -157,6 +158,7 @@ extern MonoObject* (CDECL *mono_runtime_invoke)(MonoMethod *method, void *obj, v
extern
void
(
CDECL
*
mono_runtime_object_init
)(
MonoObject
*
this_obj
);
extern
MonoString
*
(
CDECL
*
mono_string_new
)(
MonoDomain
*
domain
,
const
char
*
str
);
extern
MonoThread
*
(
CDECL
*
mono_thread_attach
)(
MonoDomain
*
domain
);
extern
void
(
CDECL
*
mono_thread_manage
)(
void
);
extern
void
(
CDECL
*
mono_trace_set_assembly
)(
MonoAssembly
*
assembly
);
/* loaded runtime interfaces */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment