[erlang-patches] Fix spec for cpu_sup:util/1

Andrew Caruth <>
Wed Dec 4 15:38:13 CET 2013


Hi OTP devs,

I recently noticed dialyzer was flagging an issue in one of our own modules that was making a call to cpu_sup:util([detailed]). An 'is_list()' guard test was performed on the second element of the tuple returned which dialyzer was reporting as a test that could never succeed. Sample output from a call to cpu_sup:util([detailed]):

{[0],
 [{soft_irq,0.0},
  {hard_irq,0.0},
  {kernel,0.41368935690109065},
  {nice_user,0.0},
  {user,0.9402030838661151}],
 [{steal,0.0},{idle,98.64610755923279},{wait,0.0}],
 []}

The spec implied {'all' | integer | list, tuple | float, tuple | float, []}, which excludes the above output, so I've updated the spec to allow the second and third elements as lists.

Also, the atoms 'soft_irq', 'hard_irq', and 'steal' were also not part of the spec, so I've also added those.

git fetch git://github.com/acaruth/otp.git cpu_sup_spec_fix
https://github.com/acaruth/otp/compare/erlang:maint...cpu_sup_spec_fix
https://github.com/acaruth/otp/compare/erlang:maint...cpu_sup_spec_fix.patch

Thanks,
Andrew Caruth


More information about the erlang-patches mailing list