bsc: split f_start_handler() in two, ..._create() and ..._run()

This is used by upcoming BSC_Tests.TC_cm_reestablishment().

Related: SYS#5130
Change-Id: I96954a6895a65718d943aa5e73b783a75a9f7256
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 61ae49e..c4ae469 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -3290,7 +3290,7 @@
 	connect(vc_conn:STATSD_PROC, vc_STATSD:STATSD_PROC);
 }
 
-function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit)
+function f_start_handler_create(template (omit) TestHdlrParams pars := omit)
 runs on test_CT return MSC_ConnHdlr {
 	var charstring id := testcasename();
 	var MSC_ConnHdlr vc_conn;
@@ -3300,12 +3300,23 @@
 	}
 	vc_conn := MSC_ConnHdlr.create(id);
 	f_connect_handler(vc_conn, bssap_idx);
+	return vc_conn;
+}
+
+function f_start_handler_run(MSC_ConnHdlr vc_conn, void_fn fn, template (omit) TestHdlrParams pars := omit)
+runs on test_CT return MSC_ConnHdlr {
+	var charstring id := testcasename();
 	/* Emit a marker to appear in the SUT's own logging output */
-	f_logp(BSCVTY, testcasename() & "() start");
+	f_logp(BSCVTY, id & "() start");
 	vc_conn.start(f_handler_init(fn, id, pars));
 	return vc_conn;
 }
 
+function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit)
+runs on test_CT return MSC_ConnHdlr {
+	return f_start_handler_run(f_start_handler_create(pars), fn, pars);
+}
+
 /* first function inside ConnHdlr component; sets g_pars + starts function */
 private function f_handler_init(void_fn fn, charstring id, template (omit) TestHdlrParams pars := omit)
 runs on MSC_ConnHdlr {