• 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
    https://gitlab.synchro.net/main/sbbs/-/commit/f689af6f9f61c2a0efd6deb7
    Modified Files:
    exec/load/recordfile.js
    Log Message:
    Add put() and reInit() support for object/object array types.

    Apparently, I've never needed this before.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Mar 2 11:22:52 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/e49448b3f25aad3dd6606fff
    Modified Files:
    exec/load/recordfile.js
    Log Message:
    Add a close method.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Mar 3 17:01:09 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/7d9d878edebc528424256cf4
    Modified Files:
    exec/load/recordfile.js
    Log Message:
    Looks like a vbuf size of a record is broken. :(

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • 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
    https://gitlab.synchro.net/main/sbbs/-/commit/f8ec728d863dd327ba0374e3
    Modified Files:
    exec/load/recordfile.js
    Log Message:
    Returning null from a constuctor is silly

    Throw an error instead. This should help DigitalMan debug his issue.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Mar 24 14:36:40 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/64a6a0d5057d56d3337f2889
    Modified Files:
    exec/load/recordfile.js
    Log Message:
    Add more detail to the file open failure exception

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • 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