diff options
author | Paolo Molaro <lupus@oddwiz.org> | 2003-07-18 13:36:47 +0400 |
---|---|---|
committer | Paolo Molaro <lupus@oddwiz.org> | 2003-07-18 13:36:47 +0400 |
commit | f1085634cb9086604a22f991c04ef3a93c6036ef (patch) | |
tree | 048c76f84043e4e0f65ec96d84c9251057b33a9d | |
parent | 005e9e650bf5a18c290c14e3ec377443c43c8227 (diff) |
Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
* icall.c, appdomain.h, appdomain.c: support full runtime shutdown
on Environment.Exit () call.
svn path=/trunk/mono/; revision=16390
-rw-r--r-- | mono/metadata/ChangeLog | 5 | ||||
-rw-r--r-- | mono/metadata/appdomain.c | 15 | ||||
-rw-r--r-- | mono/metadata/appdomain.h | 6 | ||||
-rw-r--r-- | mono/metadata/icall.c | 2 |
4 files changed, 27 insertions, 1 deletions
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 7d32a1ad74f..bfa9f184ba7 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,4 +1,9 @@ +Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com> + + * icall.c, appdomain.h, appdomain.c: support full runtime shutdown + on Environment.Exit () call. + Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com> * icall.c, reflection.h, reflection.c, verify.c: cleanups, diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c index 31c84fa19d9..03d4d3ae77a 100644 --- a/mono/metadata/appdomain.c +++ b/mono/metadata/appdomain.c @@ -116,6 +116,21 @@ mono_runtime_cleanup (MonoDomain *domain) mono_network_cleanup (); } +static MonoDomainFunc quit_function = NULL; + +void +mono_runtime_install_cleanup (MonoDomainFunc func) +{ + quit_function = func; +} + +void +mono_runtime_quit () +{ + if (quit_function != NULL) + quit_function (mono_root_domain, NULL); +} + gboolean mono_domain_has_type_resolve (MonoDomain *domain) { diff --git a/mono/metadata/appdomain.h b/mono/metadata/appdomain.h index 1450ffdf3ba..1199a4a11a9 100644 --- a/mono/metadata/appdomain.h +++ b/mono/metadata/appdomain.h @@ -127,6 +127,12 @@ mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb, void mono_runtime_cleanup (MonoDomain *domain); +void +mono_runtime_install_cleanup (MonoDomainFunc func); + +void +mono_runtime_quit (void); + MonoDomain * mono_domain_create (void); diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index 8bc6625f60f..ddf0674daed 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -3256,7 +3256,7 @@ ves_icall_System_Environment_Exit (int result) { MONO_ARCH_SAVE_REGS; - mono_profiler_shutdown (); + mono_runtime_quit (); /* we may need to do some cleanup here... */ exit (result); |