|
33 | 33 |
|
34 | 34 |
|
35 | 35 | class ReadWriteLock:
|
36 |
| - def __init__(self): |
| 36 | + def __init__(self) -> None: |
37 | 37 | self._readers = 0
|
38 | 38 | self._lock = trio.Lock() # Protects _readers
|
39 | 39 | self._write_lock = trio.Lock()
|
40 | 40 |
|
41 |
| - async def acquire_read(self): |
| 41 | + async def acquire_read(self) -> None: |
42 | 42 | async with self._lock:
|
43 | 43 | self._readers += 1
|
44 | 44 | if self._readers == 1:
|
45 | 45 | await self._write_lock.acquire()
|
46 | 46 |
|
47 |
| - async def release_read(self): |
| 47 | + async def release_read(self) -> None: |
48 | 48 | async with self._lock:
|
49 | 49 | self._readers -= 1
|
50 | 50 | if self._readers == 0:
|
51 | 51 | self._write_lock.release()
|
52 | 52 |
|
53 |
| - async def acquire_write(self): |
| 53 | + async def acquire_write(self) -> None: |
54 | 54 | await self._write_lock.acquire()
|
55 | 55 |
|
56 |
| - def release_write(self): |
| 56 | + def release_write(self) -> None: |
57 | 57 | self._write_lock.release()
|
58 | 58 |
|
59 | 59 |
|
@@ -152,8 +152,8 @@ async def read(self, n: int | None = None) -> bytes:
|
152 | 152 | return await self._read_until_eof()
|
153 | 153 | if len(self._buf) == 0:
|
154 | 154 | data: bytes
|
155 |
| - # Peek whether there is data available. If yes, we just read until there is |
156 |
| - # no data, then return. |
| 155 | + # Peek whether there is data available. If yes, we just read until |
| 156 | + # there is no data, then return. |
157 | 157 | try:
|
158 | 158 | data = self.incoming_data_channel.receive_nowait()
|
159 | 159 | self._buf.extend(data)
|
@@ -185,6 +185,7 @@ async def read(self, n: int | None = None) -> bytes:
|
185 | 185 | return bytes(payload)
|
186 | 186 | finally:
|
187 | 187 | await self.rw_lock.release_read()
|
| 188 | + return b"" |
188 | 189 |
|
189 | 190 | async def write(self, data: bytes) -> None:
|
190 | 191 | """
|
|
0 commit comments