Overview
Comment: | Added defence against bad sqlite3 handles to the finalizer |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.63 |
Files: | files | file ages | folders |
SHA1: |
79058725e7ce4dd19ca69ce8bb9a6499 |
User & Date: | matt on 2017-03-21 11:46:48 |
Other Links: | branch diff | manifest | tags |
Context
2017-03-22
| ||
14:44 | applied patches for db init on non-homehost protection & no-cache mode check-in: 9ffefc583c user: bjbarcla tags: v1.63 | |
13:29 | Fixed several places where an attempt was being made to open databases in spite on NOT being on homehost. Closed-Leaf check-in: 6e46d4a93e user: matt tags: db-only-on-homehost | |
2017-03-21
| ||
22:19 | Added config and switch to control using cache check-in: c9471f325e user: matt tags: cache-control | |
15:15 | Merged v1.63 into v1.64 check-in: d6966aee7c user: matt tags: v1.64 | |
11:46 | Added defence against bad sqlite3 handles to the finalizer check-in: 79058725e7 user: matt tags: v1.63 | |
2017-03-08
| ||
09:58 | fixed issues with Baishali last evening check-in: fb43245d3c user: bjbarcla tags: v1.63, v1.6311 | |
Changes
Modified db.scm from [bc6dc61276] to [df76958ce7].
︙ | ︙ | |||
396 397 398 399 400 401 402 | (set! *db-last-access* start-t) (mutex-unlock! *db-multi-sync-mutex*) (stack-push! (dbr:dbstruct-dbstack dbstruct) tmpdb))) ;; close all opened run-id dbs (define (db:close-all dbstruct) (if (dbr:dbstruct? dbstruct) | > > | > > | > > | > | | | | 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 | (set! *db-last-access* start-t) (mutex-unlock! *db-multi-sync-mutex*) (stack-push! (dbr:dbstruct-dbstack dbstruct) tmpdb))) ;; close all opened run-id dbs (define (db:close-all dbstruct) (if (dbr:dbstruct? dbstruct) (handle-exceptions exn (begin (debug:print 0 *default-log-port* "WARNING: Finalizing failed, " ((condition-property-accessor 'exn 'message) exn)) (print-call-chain *default-log-port*)) ;; (db:sync-touched dbstruct 0 force-sync: #t) ;; NO. Do not do this here. Instead we rely on a server to be started when there are writes, even if the server itself is not going to be used as a server. (let ((tdbs (map db:dbdat-get-db (stack->list (dbr:dbstruct-dbstack dbstruct)))) (mdb (db:dbdat-get-db (dbr:dbstruct-mtdb dbstruct))) (rdb (db:dbdat-get-db (dbr:dbstruct-refndb dbstruct)))) (map (lambda (db) (if (sqlite3:database? db) (sqlite3:finalize! db))) tdbs) (if (sqlite3:database? mdb) (sqlite3:finalize! mdb)) (if (sqlite3:database? rdb) (sqlite3:finalize! rdb)))))) ;; (let ((locdbs (dbr:dbstruct-locdbs dbstruct))) ;; (if (hash-table? locdbs) ;; (for-each (lambda (run-id) ;; (db:close-run-db dbstruct run-id)) ;; (hash-table-keys locdbs))))) ;; (define (db:open-inmem-db) |
︙ | ︙ |