[threadpool] Split domain and worker management (#4117)
[mono.git] / mono / metadata / console-unix.c
index 6123396fa8d4b94af71c605ba1102cfcdeeb5f49..7d1e9a1ec000ec99ff42e70c68be63c7c9057e76 100644 (file)
 #include <mono/metadata/domain-internals.h>
 #include <mono/metadata/gc-internals.h>
 #include <mono/metadata/metadata.h>
-#include <mono/metadata/threadpool-ms.h>
+#include <mono/metadata/threadpool.h>
 #include <mono/utils/mono-signal-handler.h>
 #include <mono/utils/mono-proclib.h>
+#include <mono/io-layer/io-layer.h>
 
 /* On solaris, curses.h must come before both termios.h and term.h */
 #ifdef HAVE_CURSES_H
@@ -257,7 +258,7 @@ do_console_cancel_event (void)
        method = mono_class_get_method_from_name (klass, "BeginInvoke", -1);
        g_assert (method != NULL);
 
-       mono_threadpool_ms_begin_invoke (domain, (MonoObject*) load_value, method, NULL, &error);
+       mono_threadpool_begin_invoke (domain, (MonoObject*) load_value, method, NULL, &error);
        if (!is_ok (&error)) {
                g_warning ("Couldn't invoke System.Console cancel handler due to %s", mono_error_get_message (&error));
                mono_error_cleanup (&error);
@@ -498,13 +499,21 @@ ves_icall_System_ConsoleDriver_TtySetup (MonoString *keypad, MonoString *teardow
        if (setup_finished)
                return TRUE;
 
-       keypad_xmit_str = keypad != NULL ? mono_string_to_utf8 (keypad) : NULL;
+       keypad_xmit_str = NULL;
+       if (keypad != NULL) {
+               keypad_xmit_str = mono_string_to_utf8_checked (keypad, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return FALSE;
+       }
        
        console_set_signal_handlers ();
        setup_finished = TRUE;
        if (!atexit_called) {
-               if (teardown != NULL)
-                       teardown_str = mono_string_to_utf8 (teardown);
+               if (teardown != NULL) {
+                       teardown_str = mono_string_to_utf8_checked (teardown, &error);
+                       if (mono_error_set_pending_exception (&error))
+                               return FALSE;
+               }
 
                mono_atexit (tty_teardown);
        }