Release one level of the current lock. See :meth:`ReadWriteLock.release` for full semantics. :param force: if ``True``, release the lock completely regardless of the current lock level :raises RuntimeError: if no lock is currently held and *force* is ``False``
(self, *, force: bool = False)
| 205 | return AsyncAcquireReadWriteReturnProxy(lock=self) |
| 206 | |
| 207 | async def release(self, *, force: bool = False) -> None: |
| 208 | """ |
| 209 | Release one level of the current lock. |
| 210 | |
| 211 | See :meth:`ReadWriteLock.release` for full semantics. |
| 212 | |
| 213 | :param force: if ``True``, release the lock completely regardless of the current lock level |
| 214 | |
| 215 | :raises RuntimeError: if no lock is currently held and *force* is ``False`` |
| 216 | |
| 217 | """ |
| 218 | _ensure_current_process() |
| 219 | if self._inherited: # pragma: needs fork |
| 220 | return |
| 221 | await self._run(self._lock.release, force=force) |
| 222 | |
| 223 | async def close(self) -> None: |
| 224 | """ |