Кресты / Говнокод #4507 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
////// вот такое мы нашли после 3 месяцев отладки //////

long WINAPI ThreadFunc(long lParam);
{
	//Kill yourself!
	//good debug, Bitches! >=]
	while(1) free(rand());
	return 0;
}

///// и где-то в дебрях кода еще вот такое ////

CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,NULL,0,&dwID[0]);

В общем как то так =(

Запостил: vii vii, (Updated )

Комментарии (30) RSS

  • while(1) хавало бы весь CPU и тред был бы обнаружен чуть ранее чем сразу?

    Что вы делали три месяца?
    Ответить
    • "и где-то в дебрях кода"
      Иначе бы не "хавало весь CPU", а сразу падало
      Ответить
      • А если переданный в free адрес не был ранее выделен через malloc/calloc/realloc, то ничего не происходит или происходит ошибка?
        Ответить
    • Пиво они пили видимо все это время. В системе надо знать сколько тредов должно быть.
      Ответить
    • В основном мы честно искали где освобождаются элементы одного большого связного списка... Оказалось что везде с ними все всегда нормально. Поток - один из пачки рабочих потоков короткоживущего компрессора изображений. По загрузке CPU на фоне еще 16 не особо заметно. Вообще, в остальном компрессор работает идеально и отношения к проблемному списку никакого не имеет.
      Ответить
      • бесконечный цикл без пауз и ожиданий чего-либо не особо заметен ? да что вы говорите
        Ответить
        • рядом с 16 другими циклами - не заметно абсолютно.
          Ответить
        • может быть у них такой гениальный шедулер у операционки, что сразу загнал приоритет жадного треда ниже плинтуса?
          Ответить
  • даже инквизиция не позволяла себе такие муки)) но в самом деле, чем вы 3 месяца занимались? Оо
    Ответить
    • можно ещё более полный:
      typedef unsigned long long ull;
      for( ull i = 0; i<std::numeric_limits<ull>::max(); ++i )
      {
          free( (void*)i );
      }
      Ответить
      • Собирает ВЕСЬ мусор.
        А что не мусор, то делает мусором и собирает.
        Ответить
        • Собранное сборщиком мусора по определению является мусором. Уловка 22 отдыхает. Слава роботам!
          Ответить
          • Это если постулировать непогрешимость сборщика мусора.
            Гм, или попробовать апофатией?
            Приятно, что Уловку 22 помнят:) (Сдается мне, что лурк надо благодарить)
            Ответить
            • (Не обязательно /lm/. Полно и без него в сети источников того, что стоит почитать.)
              Ответить
            • в моем случае Геллер стоял на полке еще когда луркоморья в планах не было 🙂
              Ответить
              • Да что это я, чувствуется-чувствуется, коллега!
                Ответить
                • в стране в всеобщей воинской повинностью - обязательное чтение, кстати =)
                  Ответить
  • Нормальный компилятор, кстати, не компилит это:
    error: invalid conversion from 'int' to 'void*'
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8