Overview
Comment: | Switch out dot locking with waiting on journal file gone. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.60 |
Files: | files | file ages | folders |
SHA1: |
f88ca3aa693bd3eefcf1284c729b11b0 |
User & Date: | mrwellan on 2014-09-03 15:48:39 |
Other Links: | branch diff | manifest | tags |
Context
2014-09-03
| ||
16:35 | Increase range of ports to pick from and add configurability for lowport check-in: db5ce0a47b user: mrwellan tags: v1.60 | |
15:48 | Switch out dot locking with waiting on journal file gone. check-in: f88ca3aa69 user: mrwellan tags: v1.60 | |
15:22 | Increased timeouts in dot lock for portlogger check-in: c832c39e64 user: mrwellan tags: v1.60 | |
Changes
Modified portlogger.scm from [ac922cdc40] to [5a6661b1a7].
︙ | |||
15 16 17 18 19 20 21 | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | + - + - + + - + - + - + | (declare (unit portlogger)) ;; lsof -i (define (portlogger:open-db fname) (let* ((avail (tasks:wait-on-journal fname 10)) ;; wait up to about 10 seconds for the journal to go away |
︙ |
Modified tasks.scm from [d75535da29] to [84494e5339].
︙ | |||
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | + + + + + + + + + + + + + + + + + | (declare (uses common)) (include "task_records.scm") ;;====================================================================== ;; Tasks db ;;====================================================================== ;; wait up to aprox n seconds for a journal to go away ;; (define (tasks:wait-on-journal path n) (let ((fullpath (conc path "-journal"))) (let loop ((journal-exists (file-exists? fullpath)) (count n)) ;; wait ten times ... (if journal-exists (if (> count 0) #f (begin (thread-sleep! 1) (loop (file-exists? fullpath) (- count 1)))) #t)))) ;; If file exists AND ;; file readable ;; ==> open it ;; If file exists AND ;; file NOT readable ;; ==> open in-mem version ;; If file NOT exists ;; ==> open in-mem version ;; (define (tasks:open-db) (let* ((linktree (configf:lookup *configdat* "setup" "linktree")) (dbpath (conc linktree "/.db/monitor.db")) (avail (tasks:wait-on-journal dbpath 10)) ;; wait up to about 10 seconds for the journal to go away (exists (file-exists? dbpath)) (write-access (file-write-access? dbpath)) (mdb (cond ((file-write-access? *toppath*)(sqlite3:open-database dbpath)) ((file-read-access? dbpath) (sqlite3:open-database dbpath)) (else (sqlite3:open-database ":memory:")))) ;; (never-give-up-open-db dbpath)) (handler (make-busy-timeout 36000))) |
︙ |