分发器 ESP Dispatcher

esp_dispatcher.c, esp_dispatcher_dueros_app.c.

序列图

../_images/787856aa0f64cbf406b9c2be1ca758af845c0d2882159cfbd5d9d5adc3195301.svg

注解

函数 esp_dispatcher_execute() 内部,有 加锁 机制 ——— 调用了 mutex_lock(impl->mutex) 和 mutex_unlock(impl->mutex)。

软件设计的时候要小心,不要因此形成 死锁 的隐患。

esp_dispatcher_create()

../_images/fd3444559ddb4c2ff8a754f48ef56a1fb90890cf55487f3ef3f1530ba56243f2.svg

esp_dispatcher_reg_exe_func()

../_images/616de741b6791cf1894233114b3f52fa0803b905773c7d333fc585cb047e4da8.svg

esp_dispatcher_execute()

../_images/8ded2851b66c5dc0aa28fac96bbf06175af94e4da32f03ed33a454ec197be5ec.svg

注解

函数 esp_dispatcher_execute() 内部,有 加锁 机制 ——— 调用了 mutex_lock(impl->mutex) 和 mutex_unlock(impl->mutex)。

软件设计的时候要小心,不要因此形成 死锁 的隐患。

esp_dispatcher_destroy()

../_images/d6d19a52ee64a0f0c8b00ca1f975debf2365dd994ee605ca25e82aefa070f13e.svg