Repository navigation
Commit 01a4b97
committed
fix: make per-file parse timeout thread-safe so analyze_repo works off the main thread
Running analyze_repo via asyncio.to_thread exposed a latent bug in the
SIGALRM-based timeout() helper: signal.signal() can only be called from
the main thread, so from a worker thread it raised (ValueError, then
UnboundLocalError in the finally block), which the per-file
`except Exception` swallowed at DEBUG level. Every file was skipped and
analyze_repo returned 0 components on macOS/Linux. Windows was
unaffected because it already fell back through the AttributeError path.
- timeout(): skip SIGALRM when it is unavailable or when not on the main
thread; run the body without a timeout instead of failing
- server.py: reword the lock comment and satisfy ruff format (blank line)1 parent 9c34e6f commit 01a4b97
2 files changed
Lines changed: 22 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
374 | 374 | | |
375 | 375 | | |
376 | 376 | | |
| 377 | + | |
377 | 378 | | |
378 | 379 | | |
379 | 380 | | |
| |||
384 | 385 | | |
385 | 386 | | |
386 | 387 | | |
387 | | - | |
388 | | - | |
389 | | - | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
390 | 393 | | |
391 | 394 | | |
392 | 395 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
36 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
37 | 48 | | |
38 | 49 | | |
39 | 50 | | |
40 | 51 | | |
41 | | - | |
| 52 | + | |
| 53 | + | |
42 | 54 | | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | 55 | | |
49 | 56 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
| 57 | + | |
| 58 | + | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
| |||
0 commit comments