-
exec/load/recordfile.js
From
deuce@VERT to
CVS commit on Sat Aug 10 10:18:52 2019
exec/load recordfile.js 1.15 1.16
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv23936
Modified Files:
recordfile.js
Log Message:
Add Lock() and UnLock() methods, and lock the record when creating a new
one.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sat Aug 10 10:38:21 2019
exec/load recordfile.js 1.16 1.17
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv26376
Modified Files:
recordfile.js
Log Message:
We can't just add milliseconds to a Date object.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sat Aug 10 10:47:37 2019
exec/load recordfile.js 1.17 1.18
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv27457
Modified Files:
recordfile.js
Log Message:
Wait a millisecond before retrying a lock.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sat Aug 17 14:27:08 2019
exec/load recordfile.js 1.18 1.19
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv8364
Modified Files:
recordfile.js
Log Message:
Add an optional "keep locked" paremeter to file I/O functions.
Default is to have the same lock state on return as when entered.
Lock records when reading/writing.
Fix defaults to be raw values rather than objects... most obvious with
Boolean values.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sun Aug 18 07:27:05 2019
exec/load recordfile.js 1.19 1.20
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv5841
Modified Files:
recordfile.js
Log Message:
More concurrency changes...
1) Don't mswait(1) on a successful lock, or when timeout is zero.
2) Flush read buffer on Get and ReLoad()
- If there's a single record in the file, close and re-open it.
- If a lock is held on a different record already, read that record.
- Otherwise, read the first record a lock with timeout zero succeeds.
3) Flush write buffer on Put().
This should now actually be safe as long as locks work.
Using file_mutex() on records is the only potential change still needed. (Because POSIX fcntl() locks are insane)
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sun Aug 18 08:17:19 2019
exec/load recordfile.js 1.20 1.21
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv12559
Modified Files:
recordfile.js
Log Message:
More concurency overhaul.
Remember that only one record lock can be held per file on some systems due
due flock() usage.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sat Aug 24 15:18:45 2019
exec/load recordfile.js 1.23 1.24
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv9269/load
Modified Files:
recordfile.js
Log Message:
To make JSLint happy, non-constructer functions must not begin with an upper-case character.
Provide upper-case wrapper for compatibility.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Aug 27 05:50:27 2019
exec/load recordfile.js 1.24 1.25
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv12112/load
Modified Files:
recordfile.js
Log Message:
Support 16-bit integers.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Aug 27 11:56:49 2019
exec/load recordfile.js 1.25 1.26
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv16091
Modified Files:
recordfile.js
Log Message:
Add 8-bit integer and "Pascal" string support.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Aug 27 15:27:37 2019
exec/load recordfile.js 1.26 1.27
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv18204/load
Modified Files:
recordfile.js
Log Message:
Fix some buts for PString and Integer8 types.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Mon Sep 2 18:29:06 2019
exec/load recordfile.js 1.27 1.28
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv27272/load
Modified Files:
recordfile.js
Log Message:
Always use base 10 for parseInt(), fix PString handling.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Sep 6 17:39:09 2019
exec/load recordfile.js 1.28 1.29
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv17506
Modified Files:
recordfile.js
Log Message:
For NaN to zero when writing number types.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Sep 20 21:36:45 2019
exec/load recordfile.js 1.29 1.30
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv21661/load
Modified Files:
recordfile.js
Log Message:
Add support for nested objects.
Fix bug writing Integer8 values.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Mon Apr 6 11:51:23 2020
exec/load recordfile.js 1.30 1.31
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv24925
Modified Files:
recordfile.js
Log Message:
Covert signed integers to unsigned before writing.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Mar 1 17:05:06 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Mar 2 11:22:52 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Wed Mar 3 17:01:09 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Wed Mar 3 18:40:43 2021
https://gitlab.synchro.net/main/sbbs/-/commit/6ca58cf825da2af075306842
Modified Files:
exec/load/recordfile.js
Log Message:
Revert back to using vbuf for write buffering.
While it would be nice to serialize it and do a single write, there's
no native functions to create binary values from numbers in the
Synchronet JS object model at this time.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Mar 24 07:36:13 2025
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Mon Mar 24 14:36:40 2025
-
From
Rob Swindell (on Debian Linux)@VERT to
Git commit to main/sbbs/master on Fri Apr 10 21:07:44 2026
https://gitlab.synchro.net/main/sbbs/-/commit/2752173e9d62b724caf2a5d0
Modified Files:
exec/load/recordfile.js
Log Message:
Fix recordfile.js toSource() calls for SM128 compatibility
toSource() is removed in SpiderMonkey 128. In put(), the default
value is only read so no copy is needed. In reInit(), use JSON.parse(JSON.stringify()) for deep-copying object/array defaults.
Co-Authored-By: Claude Opus 4.6 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net