summaryrefslogtreecommitdiffstats
path: root/util/shmctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/shmctl.c')
-rw-r--r--util/shmctl.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/util/shmctl.c b/util/shmctl.c
index f8698398..5932fdf3 100644
--- a/util/shmctl.c
+++ b/util/shmctl.c
@@ -165,6 +165,24 @@ int utmpsort(int argc, char **argv)
}
/* end of ulistsort */
+int utmpwatch(int argc, char **argv)
+{
+ int i;
+ while( 1 ){
+ for( i = 0 ; i < 4 ; ++i ){
+ usleep(300);
+ if( !utmpshm->busystate )
+ break;
+ puts("busying...");
+ }
+ if( i == 4 ){
+ puts("reset!");
+ utmpshm->busystate = 0;
+ }
+ }
+ return 0;
+}
+
struct {
int (*func)(int, char **);
char *cmd, *descript;
@@ -173,6 +191,7 @@ struct {
{utmpstate, "utmpstate", "list utmpstate"},
{utmpreset, "utmpreset", "utmpshm->busystate=0"},
{utmpsort, "utmpsort", "sort ulist"},
+ {utmpwatch, "utmpwatch", "to see if busystate is always 1 then fix it"},
{NULL, NULL, NULL} };
int main(int argc, char **argv)