summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util/shmctl.c116
1 files changed, 58 insertions, 58 deletions
diff --git a/util/shmctl.c b/util/shmctl.c
index 772df087..8c3435ca 100644
--- a/util/shmctl.c
+++ b/util/shmctl.c
@@ -493,6 +493,64 @@ int bBMC(int argc, char **argv)
return 0;
}
+#ifdef NOKILLWATERBALL
+int nkwbd(int argc, char **argv)
+{
+ int ch, sleeptime = 120, timeout = 120;
+ while( (ch = getopt(argc, argv, "s:t:h")) != -1 )
+ switch( ch ){
+ case 's':
+ if( (sleeptime = atoi(optarg)) < 10 ){
+ fprintf(stderr, "sleeptime < 10? set to 60");
+ sleeptime = 60;
+ }
+ break;
+
+ case 't':
+ if( (timeout = atoi(optarg)) < 10 ){
+ fprintf(stderr, "timeout < 10? set to 60");
+ timeout = 60;
+ }
+ break;
+
+ default:
+ fprintf(stderr, "usage: shmctl nkwbd [-s sleeptime] [-t timeout]\n");
+ return 0;
+ }
+
+ switch( fork() ){
+ case -1:
+ perror("fork()");
+ return 0;
+ break;
+
+ case 0: /* child */
+ while( 1 ){
+ int i;
+ time_t t = SHM->GV2.e.now - timeout;
+
+ printf("scanning\n");
+ for( i = 0 ; i < MAX_ACTIVE ; ++i )
+ if( SHM->uinfo[i].pid &&
+ SHM->uinfo[i].wbtime &&
+ SHM->uinfo[i].wbtime < t ){
+ printf("kill: %d\n", SHM->uinfo[i].pid);
+ kill(SHM->uinfo[i].pid, SIGUSR2);
+ SHM->uinfo[i].wbtime = 0; /* race */
+ }
+ printf("scanned\n");
+ sleep(sleeptime);
+ }
+ break;
+
+ default: /* parent */
+ fprintf(stderr, "nkwbd\n");
+ return 0;
+ }
+ return 0;
+}
+#endif
+
int SHMinit(int argc, char **argv)
{
int ch;
@@ -617,64 +675,6 @@ int usermode(int argc, char **argv)
return 0;
}
-#ifdef NOKILLWATERBALL
-int nkwbd(int argc, char **argv)
-{
- int ch, sleeptime = 120, timeout = 120;
- while( (ch = getopt(argc, argv, "s:t:h")) != -1 )
- switch( ch ){
- case 's':
- if( (sleeptime = atoi(optarg)) < 10 ){
- fprintf(stderr, "sleeptime < 10? set to 60");
- sleeptime = 60;
- }
- break;
-
- case 't':
- if( (timeout = atoi(optarg)) < 10 ){
- fprintf(stderr, "timeout < 10? set to 60");
- timeout = 60;
- }
- break;
-
- default:
- fprintf(stderr, "usage: shmctl nkwbd [-s sleeptime] [-t timeout]\n");
- return 0;
- }
-
- switch( fork() ){
- case -1:
- perror("fork()");
- return 0;
- break;
-
- case 0: /* child */
- while( 1 ){
- int i;
- time_t t = SHM->GV2.e.now - timeout;
-
- printf("scanning\n");
- for( i = 0 ; i < MAX_ACTIVE ; ++i )
- if( SHM->uinfo[i].pid &&
- SHM->uinfo[i].wbtime &&
- SHM->uinfo[i].wbtime < t ){
- printf("kill: %d\n", SHM->uinfo[i].pid);
- kill(SHM->uinfo[i].pid, SIGUSR2);
- SHM->uinfo[i].wbtime = 0; /* race */
- }
- printf("scanned\n");
- sleep(sleeptime);
- }
- break;
-
- default: /* parent */
- fprintf(stderr, "nkwbd\n");
- return 0;
- }
- return 0;
-}
-#endif
-
struct {
int (*func)(int, char **);
char *cmd, *descript;