See replies inline below:
On Tue, Jul 29, 2014 at 5:46 AM, <chru...@suse.cz> wrote:
> Hi!
> > Replaced deprecated usleep calls with calls to rt_nanosleep,
> > which has no potentially adverse interactions with signals.
>
> Deprecated in which sense? In terms of realtime testsuite?
>
My apologies for being ambiguous... years of writing pthreads applications
has made this function 'deprecated' by default in my thinking.
usleep should generally be avoided when using many other timer functions
- including nanosleep, which is the basis of rt-nanosleep.
Generally speaking, usleep and nanosleep should not be used in the same
program.
Its interaction with SIGALRM may cause interference
with other functions using SIGALRM, if any are in use.
As indicated in the usleep() man page NOTES:
" The interaction of this function with the SIGALRM signal, and
with
other timer functions such as alarm(2), sleep(3),
nanosleep(2),
setitimer(2), timer_create(2), timer_delete(2),
timer_getoverrun(2),
timer_gettime(2), timer_settime(2), ualarm(3) is unspecified.
"
> Has usleep() caused the test to fail? If so, why?
>
> usleep() is not causing prio-wake test failures in our environment.
We are getting race conditions among multiple waiter threads
on armv7a processors in the futex / mutex locking code
for the mutex associated with the condition variable in prio-wake.
This is causing one of the threads to 'hang' waiting for a lock
after the lock owner releases it and terminates. Since this
doesn't happen on x86 it appears to be specific to the armv7a -
either in the compiler code generation or in some arch-specific
code somewhere... we are investigating.
In investigating possible reasons for the 'hangup' I began by
examining the source in prio-wake.c and saw the potentially
problematic usleep calls. Knowing they don't always play
well with nanosleep I eliminated them on the chance that
they were contributing to the hangups... which in this case
they are not.
However as I said, years of coding pthreads apps
with various timer functions has led me to use only
nanosleep-related timer functions and to avoid usleep
altogether - so I submit this patch as a somewhat
'nit-picking' minor cleanup.
--
> Cyril Hrubis
> chru...@suse.cz
>
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list