Michael de Lang
Michael de Lang
Use `-DENABLE_THREAD_SANITIZER=ON` with cmake and re-run the test. That should do it.
Still reproducible on develop. ``` Thread 2 (Thread 0x7c0439983700 (LWP 32284)): #0 futex_wait_cancelable (private=, expected=0, futex_word=0x5e3c33a36ed0) at ../sysdeps/unix/sysv/linux/futex-internal.h:80 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5e3c33a36e80, cond=0x5e3c33a36ea8) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x5e3c33a36ea8, mutex=0x5e3c33a36e80)...
This only happens when an assert throws in a lambda, such as when using celix_framework_useBundle in bundle_context_bundles_test.cpp:162.
Relevant thread sanitizer output: ``` ================== WARNING: ThreadSanitizer: data race (pid=52252) Write of size 1 at 0x7b0c00004220 by thread T5 (mutexes: write M173, read M344, write M215, write M216, write...
@abroekhuis the last 3 reports are basically reporting that the usage of a zmq socket is not thread-safe. See http://api.zeromq.org/4-1:zmq#toc4 I do indeed see missing locks around the usage of...
If adding the publisher to the subscriber example (so that both are in the same executable), the following findings are reported by thread sanitizer: ``` ================== WARNING: ThreadSanitizer: data race...
So X-Etcd-Index is tied to an etcd server (so in a cluster, you can have multiple I think, not sure). But the index used in the api is the modifiedIndex...
At this point in time, if you really want to use something shared memory based, I would recommend something like https://github.com/continental/ecal It's a pub/sub middleware with very good performance characteristics....
It has been fixed (I think I forgot to unlock a mutex somewhere before...)
I've started a discussion about upstreaming at [civetweb](https://github.com/civetweb/civetweb/issues/861).