That changes looks good to me. Dan
On Tue, Mar 15, 2016 at 3:30 PM, Christian Grothoff <[email protected]> wrote: > I just checked, and indeed there was (still) this inconsistency in the > code where with MHD_USE_THREAD_PER_CONNECTION we were (on some code > paths) manipulating the shared eready DLLs. As we don't need it, the > answer is not to introduce locking, but to just not use the data > structure. > > I've now fixed this in SVN 36931. > > On 03/15/2016 08:17 PM, Dan Dedrick wrote: > > I actually did see a SIGSEGV in EDLL_insert() on "(head)->prevE = > > element;". tail was a valid pointer but the value for head was NULL. > When I > > look at the coredump though I see that the head and tail are both valid > > pointers at this point and they point to a different connection pointer > > than the one we were looking to add. I can see that there are 2 threads > in > > this process in MHD_handle_connection() for the same daemon. It might be > > worth noting that this is running with MHD_USE_THREAD_PER_CONNECTION > where > > as far as I can see does share a daemon structure across multiple > threads. > > > > Where this failed it was running 0.9.34 of libmicrohttpd. I'm going to > dig > > in to see if I can see how this could get into this state. > >
