Thanks Alex, I am still at a loss about the gustbook sample :( - pretty please take a look. Regards, Kashyap
On Wed, Aug 28, 2019 at 10:24 PM Alexander Burger <a...@software-lab.de> wrote: > Hi Kashyap, > > > 1. Open pil + from terminal 1 and run (pool "test.db") > > 2. Open pil + from terminal 2 and run (pool "test.db") > > Ah, no, this wont't work. Two separate processes don't know of each other > and > can't synchronize. > > Normally, browser sessions connect to one port (e.g. 80 or 8080) where the > parent process listens, and get their own session (child process of the > parent). > > Alternatively (without a browser, just REPL) you can use bin/psh > to create a terminal session or connect to a running session > by passing the port and session ID. > > > > 3. Run (put '{1} 'X 10) followed by (commit) in terminal 1 > > 4. Run (get '{1} 'X) from terminal 2 -> we get 10 as expected > > 5. Run (put '{1} 'Y 20) followed by (commit) in terminal 1 > > 6. Run (get '{1} 'Y) from terminal 2 -> this returns NIL > > This is fatal, and creates havoc in the DB. Ends up wit a corrupted DB in > the > worst case. > > > > I suppose the two processes in the above sequence are not a family so the > > scenario is not identical and perhaps the above is expected. > > Yes, exactly! Only a "family" of processes guarantees consistent concurrent > modifications. > > ☺/ A!ex > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe >