Non-blocking-design

  • Published on
    Artikel ini mengunci batas concurrency dalam firmware ESP32 berbasis Arduino yang berjalan di atas FreeRTOS internal. Setelah layering dan memory discipline dikendalikan, risiko berikutnya adalah eksekusi paralel tanpa boundary yang jelas. ISR, WiFi stack, MQTT callback, dan control loop berjalan dalam konteks berbeda yang dapat memicu race condition dan jitter. Artikel ini menetapkan aturan - task-per-domain, ISR hanya sebagai notifier, komunikasi antar task menggunakan queue fixed-size, serta larangan blocking di ControlTask. Dengan batas eksekusi eksplisit dan alur satu arah, firmware tetap deterministik meskipun berjalan pada sistem multitasking.