OSSP CVS Repository

ossp - Check-in [5078]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 5078
Date: 2003-Feb-27 12:37:16 (local)
2003-Feb-27 11:37:16 (UTC)
User:thl
Branch:
Comment: locking details
Tickets:
Inspections:
Files:
ossp-pkg/as/as-cui/as-cui.pod      1.17 -> 1.18     41 inserted, 4 deleted

ossp-pkg/as/as-cui/as-cui.pod 1.17 -> 1.18

--- as-cui.pod   2003/02/25 15:26:49     1.17
+++ as-cui.pod   2003/02/27 11:37:16     1.18
@@ -382,14 +382,51 @@
 
 =head2 ${HOME}/.as/lock
 
-The lock file contains the dezimal number listing the PID of the process
-that created the lock.
+The existence of the lock file alone identifies a mutual exclusive lock.
+The application will not start if a lock file from any previous run is
+dangling around.  To identify who created the lock, where the lock was
+created and to allow verification of obsolete locks, additional
+information is stored in the file. It is assumed that upon detection of
+a foreign lock the application at least prints the human readable "text"
+field to give some hint about what's going on before it terminates.
 
-B<file>         ::= B<magic> B<pid>
+B<file>         ::= B<magic> B<entry>*
 
 B<magic>        ::= /^%!AS-LOCK-[0-9]\.[0-9]$/
 
-B<pid  >        ::= [0-9]+
+B<entry>        ::= B<opt-name> " " B<opt-value> "\n"
+
+B<opt-name>     ::= "nodename" | "user" | "pid" |
+                  "pwname" | "uid" | "text"
+
+B<opt-value>    ::= /'[^']*'/  # single-quoted string
+               | /"[^"]*"/    # double-quoted string
+               | /[^\n]+/
+
+B<date> the lock files was created (format see B<date> in ${HOME}/.as/events)
+Example: 2002-02-28
+
+B<time> the lock file was created (format see B<24h-clock-time> in ${HOME}/.as/events)
+Example: 12:30
+
+B<user> who created the lock (format see B<user> in ${HOME}/.as/events)
+Example: joe
+
+B<nodename> from struct utsname.nodename returned by uname(2); same as shell "uname -n"
+Example: dv1.dev.de.cw.net
+
+B<pid> from getpid(2)
+Example: 8923
+
+B<uid> value comes from struct passwd.pw_uid returned by getpwent(2) or, alternativly by getuid(2)
+Example: 2378
+
+B<pwname> from struct passwd.pw_name returned by getpwent(2)
+Example: as-ui
+
+B<text> is created by the application and contains any printable
+information useful by a second caller to understand why execution is
+aborted. Example: "Killroy was here before you!".
 
 =head2 ${HOME}/.as/serial
 

CVSTrac 2.0.1