Guest User

Untitled

a guest
Jul 20th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. Хабрапарсер переносы строк убивает, тут я бессилен :(
  2. На С++ аналог будет выглядеть так :
  3.  
  4. isCanceled = false;
  5.  
  6. try
  7. {
  8. // Где-то тут переменная isCanceled может принять значение true
  9. }
  10. finally
  11. {
  12. if (isCanceled) // Если поток переведён в состояние canсel
  13. printf("lastFormatThread canceled"); // выводим об этом запись в отладочную консоль
  14. if (formatter) // Если память переменной выделена
  15. free(formatter); // Освобождаем её
  16. }
  17.  
  18. В этом коде кто-то чистил вывод логов, и внутри условия закоментил только сам вывод printf, но оставил условие.
  19. И получилось вот это:
  20.  
  21. if (isCanceled) // Если поток переведён в состояние canсel
  22. //printf("lastFormatThread canceled"); // пропускаем это строку и применяем проверку к следующей
  23. if (formatter) // Если память переменной выделена
  24. free(formatter); // Освобождаем её
  25.  
  26. В результате чего, память будет очищена, только если поток отменён. (в первом посте перепутал условие).
  27.  
  28. Хорошо, что нашёл при слиянии веток в Mercurial, а то было бы веселье.
Add Comment
Please, Sign In to add comment