Никакие шаблоны мертвой блокировки к моему знанию (и 12 лет записи в большой степени многопоточных торговых приложений).. Но класс TimedLock очень помог в нахождении мертвых блокировок, которые существуют в коде без крупного, переделывают.
http://www.randomtree.org/eric/techblog/archives/2004/10/multithreading_is_hard.html
в основном, (в dotnet/c#) Вы ищете/заменяете всю свою "блокировку (xxx)" операторы с "использованием TimedLock. Блокировка (xxx)"
, Если мертвая блокировка когда-либо обнаруживается (блокируют не могущий быть полученным в указанном тайм-ауте, значениях по умолчанию к 10 секундам), то исключение выдается. Моя локальная версия также сразу регистрирует stacktrace. Идите по stacktrace (предпочтительно отладочная сборка с номерами строки), и Вы будете сразу видеть то, какие блокировки были сохранены при отказе, и какой он пытался получить.
В dotnet 1.1, в ситуации с мертвой блокировкой, как описано, по стечению обстоятельств все потоки, которые были заблокированы, выдадут исключение одновременно. Таким образом, Вы заставили бы 2 + stacktraces, и вся информация, необходимая решать проблему. (2.0 +, возможно, изменил модель потоков внутренне достаточно, чтобы не быть этим удачным, я не уверен)
Проверьте эту страницу для плагина Django Eclipse: http://eclipse.kacprzak.org/
Я действительно ничего не знаю. Априори кажется возможным, что в проекте {% ...%}
может работать правильно, но {{...}}
может быть довольно натянутым. Учтите, что шаблоны django ничего не знают о коде, который будет их заполнять, поэтому нет реального способа взглянуть на заголовки или таблицу символов и предположить, что когда вы начинаете вводить fo
, это foobar
может быть допустимым именем переменной.
Я начал создавать свой собственный шаблон в Windows> Настройки> Редакторы> HTML> Шаблоны, например, для {% code%}
и {% endcomment %}
тег. Конечно, это не совсем то, что вам нужно, потому что это не динамически, и именно здесь это поможет больше всего.