From 3a064cac2a8fa5e937cb602cd9557b4be504f25b Mon Sep 17 00:00:00 2001 From: Bjarne von Horn Date: Wed, 5 Jun 2024 16:24:12 +0200 Subject: [PATCH] avoid sleeping in ecrt_master_send_ext() mini.c example now plays well with EoE. --- master/master.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/master/master.c b/master/master.c index c66bd12a..5b320d92 100644 --- a/master/master.c +++ b/master/master.c @@ -2533,7 +2533,9 @@ int ecrt_master_send_ext(ec_master_t *master) { ec_datagram_t *datagram, *next; - down(&master->ext_queue_sem); + if (down_trylock(&master->ext_queue_sem)) + return; + list_for_each_entry_safe(datagram, next, &master->ext_datagram_queue, ext_queue) { list_del_init(&datagram->ext_queue);