From a473aab3d526d01e61d39525ee8c89b885a0a761 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Wed, 19 Nov 2025 04:25:57 +1100 Subject: [PATCH] shellthread - reset worker settings to default when thread made free --- src/modules/shellthread-999999.0a1.0.tm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/modules/shellthread-999999.0a1.0.tm b/src/modules/shellthread-999999.0a1.0.tm index bc0c4391..b91780b4 100644 --- a/src/modules/shellthread-999999.0a1.0.tm +++ b/src/modules/shellthread-999999.0a1.0.tm @@ -21,6 +21,8 @@ namespace eval shellthread { namespace eval shellthread::worker { variable settings + variable settings_defaults + set settings_defaults [list -raw 0 -file "" -syslog "" -direction out] ;#also used for reset when worker returned to free thread list variable sysloghost_port variable sock variable logfile "" @@ -48,6 +50,7 @@ namespace eval shellthread::worker { variable sysloghost_port variable logfile variable settings + variable settings_defaults interp bgerror {} shellthread::worker::bgerror #package require overtype ;#overtype uses tcllib textutil, punk::char etc - currently too heavyweight in terms of loading time for use in threads. variable client_ids @@ -55,8 +58,7 @@ namespace eval shellthread::worker { lappend client_ids $tidclient set ts_start_micros $start_m - set defaults [list -raw 0 -file "" -syslog "" -direction out] - set settings [dict merge $defaults $settingsdict] + set settings [dict merge $settings_defaults $settingsdict] set syslog [dict get $settings -syslog] if {[string length $syslog]} { @@ -696,7 +698,8 @@ namespace eval shellthread::manager { foreach workertid $subscriberless_workers { if {$workertid ni $shuttingdown_workers} { if {$workertid ni $free_threads && $workertid ne "noop"} { - thread::send $workertid {set ::shellthread::worker::settings {}} + #JMN + thread::send $workertid {set ::shellthread::worker::settings $::shellthread::worker::settings_defaults} #todo - log freeing up of thread lappend free_threads $workertid }