Closed Czaki closed 8 months ago
Comparing Czaki:proper_signal_order
(eccef1a) with main
(4aa62b0)
❌ 1 (👁 1)
regressions
✅ 65
untouched benchmarks
Benchmark | main |
Czaki:proper_signal_order |
Change | |
---|---|---|---|---|
👁 | test_emit_time[setattr-50] |
200.7 µs | 224.1 µs | -10.47% |
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 100.00%. Comparing base (
4aa62b0
) to head (eccef1a
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
minor modification suggested in https://github.com/Czaki/psygnal/pull/1 it's not perfect (see note about recursion error), but curious if you have any thoughts on that approach vs this current one
please merge main here and make sure all the tests we've discussed are added, then ping for review
@tlambert03 compiled test are ending with Segfault. Did you meet something like this before:
File "/Users/runner/work/psygnal/psygnal/tests/test_psygnal.py", line 990 in test_recursion_error
no, I haven't seen that before. I can reproduce locally as well though (was just trying as you wrote), but not on main. (btw, to test locally, you can run make build
, and make clean
to undo ...)
Ok. The problem is that hatch/mypyc performs compilation in tmp directory (unlike cython that places c/cpp files in the structure of packages. So the debugger cannot find the source files.
I will try to dig, but maybe you know how to change this behavior or disable cleaning tmp
#7 0x00007ffff508f242 in CPyDef__signal___SignalInstance____run_emit_loop ()
at /tmp/tmpcocqfl4i/build/__native_ac51d50a4f4b6d748b8c.c:37311
37311 /tmp/tmpcocqfl4i/build/__native_ac51d50a4f4b6d748b8c.c: No such file or directory
good sleuthing. i also don't know, but happy to look into it if you can't find it easily
Im going to Warsaw Python meeting so will not be active today. Will sit to this at evening or toomorow
I have noticed that If some callback triggers emission of an event during an existing loop, the events may come in incorrect order, leading to a corrupted state.
I think that it is a bug, but I'm not sure if my approach to solve is correct.