1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 <2023> 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 <2023> 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Questions about Function: epicsEventWaitWithTimeout (id, timeout) |
From: | 김대영 via Tech-talk <tech-talk at aps.anl.gov> |
To: | tech-talk at aps.anl.gov |
Cc: | 박진용/책임/CnS팀 <pjy0429 at dawonsys.com>, 박상욱/수석/SnE팀 <screenbe at dawonsys.com> |
Date: | Tue, 2 May 2023 14:30:02 +0900 (KST) |
Dear All
First of all, thank you for your help.
We are developing a multi-core program in Epics 7.0.4.
(Scientific Linux 7.9 / kernel 3.10.0-1160.42.2.rt56.1182.el7.x86_64)
We use a function called epicsEventWaitWithTimeout(id,timeOut).
We obtained the following Time Test results.
#1 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 1);
> Result: 1000067us (MAX) / 1000014us (MIN)
#2 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 0.0005);
> Result: 550us (MAX) / 549us (MIN)
#3 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 0.0001);
> Result: 154us (MAX) / 112us (MIN)
#4 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 0.00005);
> Result: 104us (MAX) / 97us (MIN)
#5 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 0.00001);
> Result: 64.9us (MAX) / 60.5us (MIN)
#6 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 0.000001);
> Result: 56us (MAX) / 55.9us (MIN)
#7 epicsEventWaitWithTimeout( pSTDev->ST_RTthread.threadEventId, 0);
> Result: 54.9us (MAX) / 54.8us (MIN)
The time measurement method is as follows.
There are some questions based on the test results.
Q1) The parameter, timeout, is a double type, indicating seconds.
But the result is not. Something is not accurate. What could be the cause?
Q2) How do I improve time accuracy?
Q3) Is there any other way than using epicsEventWaitWithTimeout?
Thank you and Best Regards,