vault backup: 2025-04-02 23:40:03
This commit is contained in:
parent
7fe9332a40
commit
2b1d06acbc
1 changed files with 11 additions and 9 deletions
|
@ -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
|
||||||
```
|
```
|
Loading…
Add table
Add a link
Reference in a new issue