Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Molaro <lupus@oddwiz.org>2003-07-18 13:36:47 +0400
committerPaolo Molaro <lupus@oddwiz.org>2003-07-18 13:36:47 +0400
commitf1085634cb9086604a22f991c04ef3a93c6036ef (patch)
tree048c76f84043e4e0f65ec96d84c9251057b33a9d
parent005e9e650bf5a18c290c14e3ec377443c43c8227 (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/ChangeLog5
-rw-r--r--mono/metadata/appdomain.c15
-rw-r--r--mono/metadata/appdomain.h6
-rw-r--r--mono/metadata/icall.c2
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);