Closed femady closed 6 years ago
Thanks for your report. @pcordes 's code seems resolved this bug.
Issue still existed. By the time you hazard pointer not found the pointer and going to free, at the same time the pointer has put into your hazard pointer.
Your screenshot not like new code.
Newest lfq_dequeue_tid
:
void * lfq_dequeue_tid(struct lfq_ctx *ctx, int tid ) {
//int cn_runtimes = 0;
volatile struct lfq_node *old_head, *new_head;
#if 1 // HP[tid] stuff is necessary for deallocation. (but it's still not safe).
do {
I still run this test code on latest code, but still no hit crash. Only crash on old test script. https://github.com/darkautism/lfqueue/pull/7#issuecomment-419326061
Did you mind put this testing code into this repository?
Thanks for mentioned, i re-clone your newest project and run it. Issue Solved.