vault backup: 2025-04-02 23:40:03

This commit is contained in:
Marco Realacci 2025-04-02 23:40:03 +02:00
parent 7fe9332a40
commit 2b1d06acbc

View file

@ -1,34 +1,36 @@
``` ```
GLOB_MUTEX and R_MUTEX semaphores init. at 1 GLOB_MUTEX, W_MUTEX, PR_MUTEX and R_MUTEX semaphores init. at 1
R a shared register init. at 0 R a shared register init. at 0
begin_read() := begin_read() :=
PR_MUTEX.down() PRR_MUTEX.down()
R_MUTEX.down() R_MUTEX.down()
R++ # currently active readers R++ # currently active readers
if R = 1 then if R = 1 then
W_MUTEX.down() PRW_MUTEX.down()
GLOB_MUTEX.down() GLOB_MUTEX.down()
R_MUTEX.up() R_MUTEX.up()
PR_MUTEX.up() PRR_MUTEX.up()
return return
end_read() := end_read() :=
R_MUTEX.down() R_MUTEX.down()
R-- R--
if R = 0 then GLOB_MUTEX.up() if R = 0 then
GLOB_MUTEX.up()
PRW_MUTEX.up()
R_MUTEX.up() R_MUTEX.up()
return return
begin_write() := begin_write() :=
W_MUTEX.down() PRR_MUTEX.down()
W_MUTEX.up() PRW_MUTEX.down()
PR_MUTEX.down() PRW_MUTEX.up()
GLOB_MUTEX.down() GLOB_MUTEX.down()
return return
end_write() := end_write() :=
PR_MUTEX.up() PRR_MUTEX.up()
GLOB_MUTEX.up() GLOB_MUTEX.up()
return return
``` ```