@@ -196,6 +196,7 @@ def tcp_asyncio_in_thrd_conn(port, host='localhost', name=None, **kwargs): # kw
196196
197197def _register_builtin_unix_connections (connection_factory , moler_conn_class ):
198198 from moler .io .raw .terminal import ThreadedTerminal
199+ from moler .io .raw .terminal_no_forkpty import ThreadedTerminalNoForkPTY
199200
200201 def terminal_thd_conn_mt (name = None ):
201202 # ThreadedTerminal works on unicode so moler_connection must do no encoding
@@ -212,6 +213,22 @@ def terminal_thd_conn_st(name=None):
212213 io_conn = ThreadedTerminal (moler_connection = mlr_conn ) # TODO: add name, logger
213214 return io_conn
214215
216+ def terminal_nofork_thd_conn_mt (name = None ):
217+ # ThreadedTerminal works on unicode so moler_connection must do no encoding
218+ # mlr_conn = mlr_conn_no_encoding(moler_conn_class, name=name)
219+ mlr_conn = mlr_conn_no_encoding_partial_clean_vt100 (moler_conn_class , name = name )
220+ io_conn = ThreadedTerminalNoForkPTY (moler_connection = mlr_conn ) # TODO: add name, logger
221+ return io_conn
222+
223+ def terminal_nofork_thd_conn_st (name = None ):
224+ # ThreadedTerminal works on unicode so moler_connection must do no encoding
225+ # mlr_conn = mlr_conn_no_encoding(moler_conn_class, name=name)
226+ from moler .moler_connection_for_single_thread_runner import MolerConnectionForSingleThreadRunner
227+ mlr_conn = mlr_conn_no_encoding_partial_clean_vt100 (MolerConnectionForSingleThreadRunner , name = name )
228+ io_conn = ThreadedTerminalNoForkPTY (moler_connection = mlr_conn ) # TODO: add name, logger
229+ return io_conn
230+
231+
215232 # TODO: unify passing logger to io_conn (logger/logger_name)
216233 connection_factory .register_construction (io_type = "terminal" ,
217234 variant = "threaded" ,
@@ -228,6 +245,21 @@ def terminal_thd_conn_st(name=None):
228245 constructor = terminal_thd_conn_st )
229246
230247
248+ # TODO: unify passing logger to io_conn (logger/logger_name)
249+ connection_factory .register_construction (io_type = "terminal_no_forkpty" ,
250+ variant = "threaded" ,
251+ constructor = terminal_nofork_thd_conn_mt ) # Moler 2.0.0 will replace this to st
252+
253+ # TODO: unify passing logger to io_conn (logger/logger_name)
254+ connection_factory .register_construction (io_type = "terminal_no_forkpty" ,
255+ variant = "multi-threaded" ,
256+ constructor = terminal_nofork_thd_conn_mt )
257+
258+ # TODO: unify passing logger to io_conn (logger/logger_name)
259+ connection_factory .register_construction (io_type = "terminal_no_forkpty" ,
260+ variant = "single-threaded" ,
261+ constructor = terminal_nofork_thd_conn_st )
262+
231263def _register_builtin_py3_unix_connections (connection_factory , moler_conn_class ):
232264 from moler .io .asyncio .terminal import AsyncioTerminal , AsyncioInThreadTerminal
233265
0 commit comments