Commit 8eb27b7
committed
fix: add closed state check to prevent operations on closed session
Added RuntimeError guards to send_message(), send_audio(), and interrupt()
methods to prevent operations on closed RealtimeSession instances.
Problem:
- Session has _closed flag (line 114) but only __aiter__ checks it
- send_message(), send_audio(), interrupt() methods don't verify state
- Calling these after close() leads to operations on closed model
- Can cause undefined behavior, data loss, or connection errors
Fix:
Added state check at start of each method:
- send_message(): raises "Cannot send message: session is closed"
- send_audio(): raises "Cannot send audio: session is closed"
- interrupt(): raises "Cannot interrupt: session is closed"
This provides clear, immediate feedback when attempting invalid operations
instead of silent failures or confusing downstream errors.
Test results: All 53 tests in tests/realtime/test_session.py passed1 parent d1abf43 commit 8eb27b7
1 file changed
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
| 190 | + | |
| 191 | + | |
190 | 192 | | |
191 | 193 | | |
192 | 194 | | |
193 | 195 | | |
| 196 | + | |
| 197 | + | |
194 | 198 | | |
195 | 199 | | |
196 | 200 | | |
197 | 201 | | |
| 202 | + | |
| 203 | + | |
198 | 204 | | |
199 | 205 | | |
200 | 206 | | |
| |||
0 commit comments