Иногда с ++ играет меня отлично. Я действительно не могу понять, почему это работает / не работает, и я был бы счастлив, если бы кто-нибудь из вас знал.
Я вызываю эту функцию один раз в секунду в потоке.
Этот код РАБОТАЕТ (печатает то, что находится в списке, который повторяется):
void DeltaList::print()
{
pthread_mutex_lock (&mutex);
printf("\n");
list<Delta*>::iterator it;
for(it=deltas.begin(); it!=deltas.end(); it++)
{
printf("%d ", (int) (*it)->timeleft);
}
pthread_mutex_unlock (&mutex);
}
Этот НЕ ДЕЛАЕТ (ничего не напечатано):
void DeltaList::print()
{
pthread_mutex_lock (&mutex);
//printf("\n");
list<Delta*>::iterator it;
for(it=deltas.begin(); it!=deltas.end(); it++)
{
printf("%d ", (int) (*it)->timeleft);
}
pthread_mutex_unlock (&mutex);
}
Итак ...?