Overview
Comment: | Backed out mutex and locking on sync and moved busy handler ahead of db initialize |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.60 |
Files: | files | file ages | folders |
SHA1: |
ce3b49f7c48b5271553a479567f54e5c |
User & Date: | mrwellan on 2014-10-27 20:17:18 |
Other Links: | branch diff | manifest | tags |
Context
2014-10-28
| ||
00:18 | change default for server-query-threshold to -1, forcing always a server to start Added test for vars with . check-in: cf47596912 user: matt tags: v1.60 | |
2014-10-27
| ||
20:17 | Backed out mutex and locking on sync and moved busy handler ahead of db initialize check-in: ce3b49f7c4 user: mrwellan tags: v1.60 | |
11:13 | Remove on exit cleanup. All finalization is done automaticaly apparently check-in: 92586d64ab user: mrwellan tags: v1.60 | |
Changes
Modified db.scm from [e21312105d] to [1e343e9345].
︙ | ︙ | |||
276 277 278 279 280 281 282 | num-synced) 0)))) ;; close all opened run-id dbs (define (db:close-all dbstruct) ;; finalize main.db (db:sync-touched dbstruct 0 force-sync: #t) | | | | > < > | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 | num-synced) 0)))) ;; close all opened run-id dbs (define (db:close-all dbstruct) ;; finalize main.db (db:sync-touched dbstruct 0 force-sync: #t) ;;(common:db-block-further-queries) ;; (mutex-lock! *db-sync-mutex*) ;; with this perhaps it isn't necessary to use the block-further-queries mechanism? (sqlite3:finalize! (db:get-db dbstruct #f)) (let* ((local (dbr:dbstruct-get-local dbstruct)) (rundb (dbr:dbstruct-get-rundb dbstruct))) (if local (for-each (lambda (db) (if (sqlite3:database? db) (begin (sqlite3:interrupt! db) (sqlite3:finalize! db #t)))) (hash-table-values (dbr:dbstruct-get-locdbs dbstruct)))) (thread-sleep! 3) (if (and rundb (sqlite3:database? rundb)) (handle-exceptions exn #t ;; (debug:print 0 "WARNING: database files may not have been closed correctly. Consider running -cleanup-db") (sqlite3:interrupt! rundb) (sqlite3:finalize! rundb #t)))) ;; (mutex-unlock! *db-sync-mutex*) ) (define (db:open-inmem-db) (let* ((db (sqlite3:open-database ":memory:")) (handler (make-busy-timeout 3600))) (sqlite3:set-busy-handler! db handler) (db:initialize-run-id-db db) db)) ;; just tests, test_steps and test_data tables (define db:sync-tests-only (list ;; (list "strs" ;; '("id" #f) |
︙ | ︙ |