zeromq / czmq

High-level C binding for ØMQ
czmq.zeromq.org
Mozilla Public License 2.0
1.16k stars 523 forks source link

Fixed issue 2278, loop->terminated == true when restarting a loop #2282

Closed ihatechoosingusernames closed 2 months ago

ihatechoosingusernames commented 3 months ago

Problem: Issue 2278; loop->terminated == true when restarting a loop allowing timer callbacks to update loop->timers in place.

Solution: Set loop->terminated = false at beginning of zloop_start. Add test to both demonstrate the issue and test the fix.

sphaero commented 3 months ago

It seems to fail on macOS?

make[3]: Circular src/selftest-ro <- src/selftest-ro dependency dropped.
/bin/sh ./libtool --mode=execute ./src/czmq_selftest
Assertion failed: (timer_end_called_1 == false), function zloop_test, file zloop.c, line 1027.
Running czmq selftests...
make[3]: *** [check-local] Abort trap: 6
 * zgossip_msg: OK
 * zactor: OK
 * zarmour: OK
 * zcert: OK
make[2]: *** [check-am] Error 2
 * zcertstore: OK
 * zchunk: OK
 * zclock: OK
 * zconfig: OK
 * zdigest: OK
 * zdir: OK
 * zdir_patch: OK
 * zfile: OK
 * zframe: OK
 * zhash: OK
 * zhashx: OK
 * ziflist: OK
 * zlist: OK
 * zlistx: OK
make[1]: *** [check-recursive] Error 1
make: *** [distcheck] Error 1
 * zloop: 
Error: Process completed with exit code 2.
sphaero commented 2 months ago

MacOS is off again but it can hardly be caused by this. I'm merging this anyway. Thanks