2
* Copyright (C) 2002-2005 Novell/SUSE
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation, version 2 of the
12
#include <sys/sysctl.h>
14
#include <sys/types.h>
19
int main(int argc, char *argv[])
21
int save_max_threads, new_max_threads, read_new_max_threads;
22
size_t save_sz = sizeof(save_max_threads);
23
int name[] = {CTL_KERN, KERN_MAX_THREADS};
26
if ((argc > 1) && strcmp(argv[1],"ro") == 0)
29
if (sysctl(name, sizeof(name), &save_max_threads, &save_sz, NULL, 0) == -1){
30
fprintf(stderr, "FAIL: sysctl read failed - %s\n",
35
/* printf("Kernel max threads (saved) is %d\n", save_max_threads); */
42
new_max_threads = save_max_threads + 1024;
44
if (sysctl(name, sizeof(name), NULL, 0, &new_max_threads, save_sz) == -1){
45
fprintf(stderr, "FAIL: sysctl write failed - %s\n",
50
if (sysctl(name, sizeof(name), &read_new_max_threads, &save_sz, NULL, 0) == -1){
51
fprintf(stderr, "FAIL: sysctl read failed - %s\n",
56
/* printf("Kernel max threads (new) is %d\n", read_new_max_threads); */
58
if (read_new_max_threads != new_max_threads) {
59
fprintf(stderr, "FAIL: read value does not match written values\n");
63
if (sysctl(name, sizeof(name), NULL, 0, &save_max_threads, save_sz) == -1){
64
fprintf(stderr, "FAIL: sysctl write failed - %s\n",
69
if (sysctl(name, sizeof(name), &read_new_max_threads, &save_sz, NULL, 0) == -1){
70
fprintf(stderr, "FAIL: sysctl read failed - %s\n",
75
/* printf("Kernel max threads (saved) is %d\n", read_new_max_threads);*/
77
if (read_new_max_threads != save_max_threads) {
78
fprintf(stderr, "FAIL: read value does not match written values\n");