Commit 5fdf66e
committed
rtc: fail fast instead of hanging when FFI is used across fork()
The native runtime (tokio worker/IO threads in liblivekit_ffi) does not
survive fork() and cannot be rebuilt by re-initializing, so a child that
inherited an initialized FfiClient would hang on every request. Guard
request() with the owning pid and raise a clear error instead. The atexit
dispose handler is likewise skipped in fork children (it needs the runtime
and would hang at exit). Also move the drop_handle side effect out of an
assert so it is not stripped under python -O.1 parent 3f92f3c commit 5fdf66e
1 file changed
Lines changed: 15 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
87 | 91 | | |
88 | 92 | | |
89 | 93 | | |
| |||
218 | 222 | | |
219 | 223 | | |
220 | 224 | | |
| 225 | + | |
221 | 226 | | |
222 | 227 | | |
223 | 228 | | |
| |||
253 | 258 | | |
254 | 259 | | |
255 | 260 | | |
| 261 | + | |
256 | 262 | | |
257 | 263 | | |
258 | 264 | | |
| 265 | + | |
| 266 | + | |
259 | 267 | | |
260 | 268 | | |
261 | 269 | | |
262 | 270 | | |
263 | 271 | | |
264 | 272 | | |
265 | 273 | | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
266 | 280 | | |
267 | 281 | | |
268 | 282 | | |
| |||
0 commit comments