you can double free the object i think  if you set destroyed  then  the list empty will be true both here and in sync obj remove pt  you are not holding any locks in either place at the time of comparison 