Browse Source

shellthread - reset worker settings to default when thread made free

master
Julian Noble 2 weeks ago
parent
commit
a473aab3d5
  1. 9
      src/modules/shellthread-999999.0a1.0.tm

9
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
}

Loading…
Cancel
Save