Posted to tcl by DS at Tue Nov 23 16:39:32 GMT 2010view raw
- #---------------------------------------------------------------------------------------------------
- proc lock {local_file_name {timeout 1000}} {
- set ms 0
- while {[catch {
- set file [open $local_file_name {CREAT RDWR EXCL}]
- close $file
- }]} {
- incr ms
- if {$ms > $timeout} {
- log [namespace current] {expired lock} $local_file_name
- file delete $local_file_name
- set timeout 0
- } else {
- after 1
- }
- }
- }
- #---------------------------------------------------------------------------------------------------
- proc unlock {local_file_name} {file delete $local_file_name}