nsmcp::ServerRuntime method schedulerDiagnostics (protected)

 <instance of nsmcp::ServerRuntime[i]> schedulerDiagnostics

Defined in /usr/local/ns/tcl/nsmcp/stats-tools.tcl

Always collected now, even when runtime data comes from a shared sample.

Testcases:
No testcase defined.
Source code:
set result [dict create scope process observedAt [clock seconds]]
if {[catch {${:schedulerCommand} scheduler} counters]} {
    dict set result available false
    dict set result reason {ns_info scheduler is unavailable or failed; scheduler timings are unknown.}
} else {
    dict set result available true
    dict set result counters $counters
    # One bounded NSV slot survives interpreter changes and module reload.
    # Atomic exchange avoids separate get/set races; out-of-order reads
    # are rejected by the comparison's interval check.
    if {[catch {set identity [list [ns_info pid] [ns_info boottime]]}]} {
        dict set result comparison {available false reason process-identity-unavailable}
    } else {
        set current [dict create identity $identity observedAt [expr {[clock microseconds]/1000000.0}] counters $counters]
        set previous [nsv_set -reset ${:schedulerStore} latest $current]
        dict set result observedAt [dict get $current observedAt]
        dict set result comparison [::nsmcp::schedulerComparison $previous $current]
    }
}
return $result
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: