- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::nsshell::KernelThreadHandler
::nsshell::KernelThreadHandler create ... \
[ -kernel (default "") ] \
[ -kernels (default "") ] \
[ -supported:1..n (default "eval dropKernel") ]
Defined in /usr/local/ns/tcl/nsshell/shell.tcl
Class Relations
::nx::Class create ::nsshell::KernelThreadHandler \ -superclass ::nsshell::HandlerMethods (to be applied on instances)
dropKernel (scripted, public)
<instance of nsshell::KernelThreadHandler> dropKernel nameDelete a kernel in memory. This method actually deletes the interpreter used for the kernel.
- Parameters:
- name (required)
- Testcases:
- No testcase defined.
if {$name in ${:kernels} && $name ne ""} { ns_log notice "dropKernel: drop kernel '$name'" # # Delete interpreter # kernels do [list interp delete $name] # # Remove name from the kernels list # set posn [lsearch -exact ${:kernels} $name] set list [lreplace ${:kernels} $posn $posn] } else { ns_log notice "dropKernel: No kernel named '$name' defined." }eval (scripted, public)
<instance of nsshell::KernelThreadHandler> eval arg kernel \ channelEvaluate the command provided by "$arg" in the specified kernel.
- Parameters:
- arg (required)
- kernel (required)
- channel (required)
- Testcases:
- No testcase defined.
debug "[current class] eval <$arg> <$kernel>" :useKernel $kernel if {$kernel ne ""} { set cmd [list interp eval $kernel $arg] } else { set cmd $arg } debug "[current class] executes <kernels do $cmd>" try { set info [list status ok result [kernels do $cmd]] } on error {errorMsg} { ns_log warning "nsshell: kernel eval returned error <$errorMsg> $::errorInfo" set info [list status error result $errorMsg] } return $infouseKernel (scripted, public)
<instance of nsshell::KernelThreadHandler> useKernel nameCreate or use the named kernel. If the kernel does not exist, create it new by creating an slave interpreter.
- Parameters:
- name (required)
- Testcases:
- No testcase defined.
if {$name ni ${:kernels} && $name ne ""} { ns_log notice "Kernel thread creates kernel (= interp) '$name'" kernels do [list interp create $name] # autoload nx, should be generalized kernels do [list interp eval $name { package require nx }] lappend :kernels $name }
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables