From 8ec10ce4558ed0e4afd33dd9e57381ff17a637d7 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Tue, 3 Mar 2015 07:04:31 -0600 Subject: [PATCH] auto-sync --- firmware/config/engines/mazda_626.cpp | 2 ++ firmware/util/efilib2.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/firmware/config/engines/mazda_626.cpp b/firmware/config/engines/mazda_626.cpp index 9a5eb01a73..3fb2fa72dd 100644 --- a/firmware/config/engines/mazda_626.cpp +++ b/firmware/config/engines/mazda_626.cpp @@ -27,6 +27,8 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { boardConfiguration->analogChartMode = AC_TRIGGER; engineConfiguration->analogChartFrequency = 2; + engineConfiguration->injector.flow = 330; + // set_global_trigger_offset_angle -42 engineConfiguration->globalTriggerAngleOffset = -42; diff --git a/firmware/util/efilib2.cpp b/firmware/util/efilib2.cpp index 393ca32d37..b722bb6b19 100644 --- a/firmware/util/efilib2.cpp +++ b/firmware/util/efilib2.cpp @@ -46,16 +46,19 @@ uint64_t Overflow64Counter::get() { * * http://stackoverflow.com/questions/5162673/how-to-read-two-32bit-counters-as-a-64bit-integer-without-race-condition */ - // these are local copies for thread-safery - // todo: this is still not atomic, so technically not thread safe. uint64_t localH; uint32_t localLow; + int counter = 0; while (true) { localH = state.highBits; localLow = state.lowBits; uint64_t localH2 = state.highBits; if (localH == localH2) break; +#if EFI_PROD_CODE || defined(__DOXYGEN__) + if (counter++ == 10000) + chDbgPanic("lock-free frozen"); +#endif /* EFI_PROD_CODE */ } /** * We need to take current counter after making a local 64 bit snapshot