X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcontextswitch.c;h=c207318f9d62425fbfb18e7e86727bce62b65bcb;hb=bec423a136b879dc53e9123f7e8b94c7ef6097a2;hp=f571d39c39201c174d0cfea1ba68054a6565ad0d;hpb=5faee1b80e2718c7c12801439af1a6a6729c0b8d;p=collectd.git diff --git a/src/contextswitch.c b/src/contextswitch.c index f571d39c..c207318f 100644 --- a/src/contextswitch.c +++ b/src/contextswitch.c @@ -59,29 +59,31 @@ static void cs_submit (derive_t context_switches) static int cs_read (void) { - int status = -2; #if HAVE_SYSCTLBYNAME - int value; + int value = 0; size_t value_len = sizeof (value); + int status; - if (sysctlbyname ("vm.stats.sys.v_swtch", (void *) &value, &value_len, - NULL, 0) == 0) - { - cs_submit(value); - status = 0; - } - else + status = sysctlbyname ("vm.stats.sys.v_swtch", + &value, &value_len, + /* new pointer = */ NULL, /* new length = */ 0); + if (status != 0) { - ERROR("contextswitch plugin: sysctlbyname failed"); + ERROR("contextswitch plugin: sysctlbyname " + "(vm.stats.sys.v_swtch) failed"); + return (-1); } + cs_submit (value); /* #endif HAVE_SYSCTLBYNAME */ + #elif KERNEL_LINUX FILE *fh; char buffer[64]; int numfields; char *fields[3]; derive_t result = 0; + int status = -2; fh = fopen ("/proc/stat", "r"); if (fh == NULL) {