- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::xotcl::THREAD
::xotcl::THREADcreate ... \
[ -exithandler (default "ns_log notice "EXITHANDLER of slave thread SELF [pid]"") ] \
[ -lightweight (default "0") ] \
[ -persistent (default "0") ]
Defined in
Class Relations
::xotcl::Class create ::xotcl::THREAD \ -superclass ::xotcl::ObjectMethods (to be applied on the object)
recreate (scripted, private)
xotcl::THREADrecreate obj args [ args... ]
this method catches recreation of THREADs in worker threads it reinitializes the thread according to the new definition.
- Parameters:
- obj (required)
- args (required)
- Testcases:
- No testcase defined.
:log "recreating [self] $obj, tid [$obj exists tid]" if {![string match "::*" $obj]} { set obj ::$obj } $obj set recreate 1 next $obj init [lindex $args 0] if {[nsv_exists [self] $obj] && [$obj exists initcmd]} { set tid [nsv_get [self] $obj] ::thread::send $tid [$obj set initcmd] $obj set tid $tid :log "+++ content of thread $obj ($tid) redefined" }shutdown (scripted, private)
xotcl::THREADshutdown registry obj tid
Stop a persistent thread after NaviServer has drained connection workers. The shared stopping marker prevents further sends and duplicate releases.
- Parameters:
- registry (required)
- shared thread registry used by the object's class
- obj (required)
- fully qualified thread object name
- tid (required)
- thread identifier registered for this shutdown callback
- Testcases:
- No testcase defined.
if {![nsv_exists $registry $obj] || [nsv_get $registry $obj] ne $tid || [nsv_exists ${registry}::stopping $obj]} { return } nsv_set ${registry}::stopping $obj $tid if {[::thread::exists $tid]} { ::thread::release $tid }
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
![[i]](/resources/acs-subsite/ZoomIn16.gif)