libstdc++/4367: Sparc atomicity.h routines can lock up on some OS.
eric.norum@usask.ca
eric.norum@usask.ca
Thu Sep 20 07:56:00 GMT 2001
>Number: 4367
>Category: libstdc++
>Synopsis: Sparc atomicity.h routines can lock up on some OS.
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Sep 20 07:56:02 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Eric Norum
>Release: gcc-3.0
>Organization:
>Environment:
Real-time OS environments (e.g. vxWorks, pSOS+, eCOS, RTEMS)
>Description:
The sparc version of the routines in atomicity.h can lock up
on operating systems which provide strict priority-based
scheduling (e.g. vxWorks, pSOS+, eCOS, RTEMS). Here's the
scenario:
1) Low priority task enters __exchange_and_add and sets
the lock.
2) While low-priority task is still active in
__exchange_and_add a higher-priority task preempts.
3) The higher-priority task enters __exchange_and_add and
enters an infinite loop trying to set the lock.
>How-To-Repeat:
>Fix:
None that I can think of, unfortunately!
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list