182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
+
|
test:get-item-path
test:test-get-fullname
make-and-init-bigdata
call-with-environment-variables
common:simple-file-lock
common:simple-file-lock-and-wait
common:simple-file-release-lock
common:with-simple-file-lock
common:fail-safe
get-file-descriptor-count
common:get-this-exe-fullpath
common:get-sync-lock-filepath
common:find-local-megatest
common:logpro-exit-code->status-sym
common:worse-status-sym
|
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
|
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
|
+
+
+
+
+
+
+
|
#f)))))
(define (common:simple-file-release-lock fname)
(handle-exceptions
exn
#f ;; I don't really care why this failed (at least for now)
(delete-file* fname)))
(define (common:with-simple-file-lock fname proc)
(let* ((lkfname (conc fname ".lock")))
(common:simple-file-lock-and-wait lkfname)
(let ((res (proc)))
(common:simple-file-release-lock lkfname)
res)))
;;======================================================================
;; PUlled below from common.scm
;;======================================================================
;; execute thunk, return value. If exception thrown, trap exception, return #f, and emit nonfatal condition note to *default-log-port* .
;; arguments - thunk, message
|