-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
| Field | Value |
|---|---|
| Bugzilla ID | 1472 |
| Reporter | mario.antonio |
| Assigned to | DOC Center Support List (internal) |
| Product | ACE |
| Component | ACE Core |
| Version | 5.3 |
| Platform / OS | SPARC / Solaris |
| Priority | P3 |
| Severity | major |
| Status | ASSIGNED |
| Resolution | |
| Created | 2003-03-20 15:47:01 -0600 |
Originally posted by mario.antonio on 2003-03-20 15:47:01 -0600
The implementation of ACE_SV_Semaphore_Complex::op(sembuf [], u_short) looks
like the following.
ASYS_INLINE int
ACE_SV_Semaphore_Complex::op (sembuf op_vec[], u_short n) const
{
ACE_TRACE ("ACE_SV_Semaphore_Complex::op");
return ACE_SV_Semaphore_Simple::op (op_vec, (u_short) n + 2);
}
As a difference of other calls to SV_Semaphore_Complex, the n parameter should
be the number of elements of the vector given as first parameter, op_vec.
However, the implementation is adding '2' like it is a number of semaphore
inside the semaphore set.
The fix should consist of creating a new op_vec vector of size n and replacing
all the semaphore ids inside the vector to the semaphore id + 2.
Reactions are currently unavailable