Windows.WMPerfMonPluginCpu.Mod 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. MODULE WMPerfMonPluginCpu; (** AUTHOR "staubesv"; PURPOSE "Performance Monitor CPU load plugin"; *)
  2. IMPORT
  3. WMPerfMonPlugins, Objects, Modules;
  4. CONST
  5. ModuleName = "WMPerfMonPluginCpu";
  6. TYPE
  7. (* Dummy parameter for compatiblity only *)
  8. CpuParameter* = POINTER TO RECORD (WMPerfMonPlugins.Parameter)
  9. processorID* : LONGINT;
  10. END;
  11. CpuLoad* = OBJECT(WMPerfMonPlugins.Plugin);
  12. PROCEDURE Init*(p : WMPerfMonPlugins.Parameter);
  13. BEGIN
  14. p.name := "NumReady"; p.description := "Number of processes in ready queue";
  15. p.modulename := ModuleName;
  16. p.autoMin := TRUE; p.autoMax := TRUE; p.minDigits := 2;
  17. END Init;
  18. PROCEDURE UpdateDataset*;
  19. BEGIN
  20. dataset[0] := Objects.NumReady();
  21. END UpdateDataset;
  22. END CpuLoad;
  23. VAR
  24. nbrOfCpus- : LONGINT;
  25. PROCEDURE InitPlugins;
  26. VAR cpuLoad : CpuLoad; par : WMPerfMonPlugins.Parameter;
  27. BEGIN
  28. NEW(par); NEW(cpuLoad, par);
  29. END InitPlugins;
  30. PROCEDURE Install*;
  31. END Install;
  32. PROCEDURE Cleanup;
  33. BEGIN
  34. WMPerfMonPlugins.updater.RemoveByModuleName(ModuleName);
  35. END Cleanup;
  36. BEGIN
  37. nbrOfCpus := 1;
  38. InitPlugins;
  39. Modules.InstallTermHandler(Cleanup);
  40. END WMPerfMonPluginCpu.
  41. WMPerfMonPluginCpu.Install ~ SystemTools.Free WMPerfMonPluginCpu ~