|
|
|
@ -21,6 +21,8 @@ namespace eval shellthread { |
|
|
|
|
|
|
|
|
|
|
|
namespace eval shellthread::worker { |
|
|
|
namespace eval shellthread::worker { |
|
|
|
variable settings |
|
|
|
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 sysloghost_port |
|
|
|
variable sock |
|
|
|
variable sock |
|
|
|
variable logfile "" |
|
|
|
variable logfile "" |
|
|
|
@ -48,6 +50,7 @@ namespace eval shellthread::worker { |
|
|
|
variable sysloghost_port |
|
|
|
variable sysloghost_port |
|
|
|
variable logfile |
|
|
|
variable logfile |
|
|
|
variable settings |
|
|
|
variable settings |
|
|
|
|
|
|
|
variable settings_defaults |
|
|
|
interp bgerror {} shellthread::worker::bgerror |
|
|
|
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. |
|
|
|
#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 |
|
|
|
variable client_ids |
|
|
|
@ -55,8 +58,7 @@ namespace eval shellthread::worker { |
|
|
|
lappend client_ids $tidclient |
|
|
|
lappend client_ids $tidclient |
|
|
|
set ts_start_micros $start_m |
|
|
|
set ts_start_micros $start_m |
|
|
|
|
|
|
|
|
|
|
|
set defaults [list -raw 0 -file "" -syslog "" -direction out] |
|
|
|
set settings [dict merge $settings_defaults $settingsdict] |
|
|
|
set settings [dict merge $defaults $settingsdict] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set syslog [dict get $settings -syslog] |
|
|
|
set syslog [dict get $settings -syslog] |
|
|
|
if {[string length $syslog]} { |
|
|
|
if {[string length $syslog]} { |
|
|
|
@ -696,7 +698,8 @@ namespace eval shellthread::manager { |
|
|
|
foreach workertid $subscriberless_workers { |
|
|
|
foreach workertid $subscriberless_workers { |
|
|
|
if {$workertid ni $shuttingdown_workers} { |
|
|
|
if {$workertid ni $shuttingdown_workers} { |
|
|
|
if {$workertid ni $free_threads && $workertid ne "noop"} { |
|
|
|
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 |
|
|
|
#todo - log freeing up of thread |
|
|
|
lappend free_threads $workertid |
|
|
|
lappend free_threads $workertid |
|
|
|
} |
|
|
|
} |
|
|
|
|