This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

libstdc++/4367: Sparc atomicity.h routines can lock up on some OS.



>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]