Skip to content

Commit 9f970a5

Browse files
committed
clear the frame fragment cache on finishing the stream
1 parent aa6d559 commit 9f970a5

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

rsocket/frame_fragment_cache.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class FrameFragmentCache:
88
__slots__ = '_frames_by_stream_id'
99

1010
def __init__(self):
11-
self._frames_by_stream_id: Dict[str, FragmentableFrame] = {}
11+
self._frames_by_stream_id: Dict[int, FragmentableFrame] = {}
1212

1313
def append(self, frame: FragmentableFrame) -> Optional[FragmentableFrame]:
1414
if frame.flags_follows:
@@ -20,6 +20,9 @@ def append(self, frame: FragmentableFrame) -> Optional[FragmentableFrame]:
2020
self._frames_by_stream_id.pop(frame.stream_id)
2121
return frame
2222

23+
def remove(self, stream_id: int):
24+
self._frames_by_stream_id.pop(stream_id, None)
25+
2326
def _frame_fragment_builder(self, next_fragment: FragmentableFrame) -> FragmentableFrame:
2427

2528
current_frame_from_fragments = self._frames_by_stream_id.get(next_fragment.stream_id)

rsocket/rsocket_base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def _get_first_stream_id(self) -> int:
149149

150150
def finish_stream(self, stream_id: int):
151151
self._stream_control.finish_stream(stream_id)
152+
self._frame_fragment_cache.remove(stream_id)
152153

153154
def send_request(self, frame: RequestFrame):
154155
if self._honor_lease and not self._is_frame_allowed_to_send(frame):

0 commit comments

Comments
 (0)