Я настоятельно рекомендую превосходную библиотеку FastDelegate Don Clugston. Это обеспечивает все вещи, которые Вы ожидали бы настоящего делегата и компилируете вниз в несколько инструкций ASM в большинстве случаев. Сопроводительная статья является хорошим чтением на указателях функции членства также.
[2016] Эндрю Катберт указал в 2016 году, что git diff также блокирует файлы, пока вы не выйдете из него.
Этого не случится с Git 2.23 (Q3 2019)
См. commit 3aef54e (11 Jul 2019) от Йоханнеса Шинделина (dscho
) .
(Объединено с Хунио С. Хамано - gitster
- в commit d9beb46 , 25 июля 2019 г.) sup>
diff
:munmap()
содержимое файла перед запуском внешнего diffПри запуске внешнего diff, скажем, из
diff tool
, можно с уверенностью предположить, что мы хотим записать соответствующие файлы.
В Windows это означает, что не может быть никакого другого процесса, держащего открытый дескриптор для указанных файлов, или даже просто отображенную область.Итак, давайте удостоверимся, что сам
git diff
не держит никаких открытых дескрипторов для рассматриваемых файлов.Фактически, мы сразу же выпустим пару файлов, так как внешний diff использует файлы, которые мы только что написали, поэтому нам больше не нужно хранить содержимое файла в памяти.
Это исправляет git-for-windows # 1315