Skip to content

[BZ-1472] SV_Semaphore_Complex::op(sembuf op_vec[],u_short n) does not work #1472

@jwillemsen

Description

@jwillemsen
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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions