diff options
author | jasone <jasone@FreeBSD.org> | 2001-08-13 21:25:30 +0000 |
---|---|---|
committer | jasone <jasone@FreeBSD.org> | 2001-08-13 21:25:30 +0000 |
commit | 74c140cf82c44db573799d0833dbc1919b41be89 (patch) | |
tree | 67194a60468f548a491adff90351cbea4c362c47 /share/man/man9/sx.9 | |
parent | 6696e00e0f7ceaf730d55501d99f5db0f23f8741 (diff) | |
download | FreeBSD-src-74c140cf82c44db573799d0833dbc1919b41be89.zip FreeBSD-src-74c140cf82c44db573799d0833dbc1919b41be89.tar.gz |
Add sx_try_upgrade() and sx_downgrade().
Submitted by: Alexander Kabaev <ak03@gte.com>
Diffstat (limited to 'share/man/man9/sx.9')
-rw-r--r-- | share/man/man9/sx.9 | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/share/man/man9/sx.9 b/share/man/man9/sx.9 index 2fa0302..9450989 100644 --- a/share/man/man9/sx.9 +++ b/share/man/man9/sx.9 @@ -39,6 +39,8 @@ .Nm sx_try_xlock , .Nm sx_sunlock , .Nm sx_xunlock +.Nm sx_try_upgrade +.Nm sx_downgrade .Nd kernel shared/exclusive lock .Sh SYNOPSIS .Fd #include <sys/types.h> @@ -61,6 +63,10 @@ .Fn sx_sunlock "struct sx *sx" .Ft void .Fn sx_xunlock "struct sx *sx" +.Ft int +.Fn sx_try_upgrade "struct sx *sx" +.Ft void +.Fn sx_downgrade "struct sx *sx" .Sh DESCRIPTION Shared/exclusive locks are used to protect data that are read far more often than they are written. @@ -91,6 +97,12 @@ or .Fn sx_try_xlock and .Fn sx_xunlock . +A thread can attempt to upgrade a currently owned shared lock to an exclusive +lock by calling +.Fn sx_try_upgrade . +A thread that owns an exclusive lock can downgrade it to a shared lock by +calling +.Fn sx_downgrade . .Pp .Fn sx_try_slock and @@ -99,6 +111,11 @@ will return 0 if the shared/exclusive lock cannot be acquired immediately; otherwise the shared/exclusive lock will be acquired and a non-zero value will be returned. .Pp +.Fn sx_try_upgrade +will return 0 if the shared lock cannot be upgraded to an exclusive lock +immediately; otherwise the exclusive lock will be acquired and a non-zero value +will be returned. +.Pp A thread may not own a shared lock and an exclusive lock simultaneously; attempting to do so will result in deadlock. .Sh SEE ALSO |