[thread.lock.shared.obs]

# 32 Concurrency support library [[thread]](./#thread)

## 32.6 Mutual exclusion [[thread.mutex]](thread.mutex#thread.lock.shared.obs)

### 32.6.5 Locks [[thread.lock]](thread.lock#shared.obs)

#### 32.6.5.5 Class template shared_lock [[thread.lock.shared]](thread.lock.shared#obs)

#### 32.6.5.5.5 Observers [thread.lock.shared.obs]

[ð](#lib:owns_lock,shared_lock)

`bool owns_lock() const noexcept;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L9275)

*Returns*: owns[.](#1.sentence-1)

[ð](#lib:operator_bool,shared_lock)

`explicit operator bool() const noexcept;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L9286)

*Returns*: owns[.](#2.sentence-1)

[ð](#lib:mutex,shared_lock)

`mutex_type* mutex() const noexcept;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L9297)

*Returns*: pm[.](#3.sentence-1)
