This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


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

Bug in timed message box get function ?


I think I have found a bug in the timed mbox get function.

The symptom is that it only accurately times out the first time it is
called. Further calls will always return immediately.

The problem (from what I can see), is that the alarm routines used in
mboxt2.inl take absolute times yet they are always passed in a delay.

I made a small change to mbox.cxx that solved the problem for me:

New:

Cyg_Mbox::get( cyg_tick_count timeout )
{
    void * p;
    if ( ! m.get( p, Cyg_Clock::real_time_clock->current_value()+timeout ) )
        return NULL;
    return p;
}

Old:

Cyg_Mbox::get( cyg_tick_count timeout )
{
    void * p;
    if ( ! m.get( p, timeout ) )
        return NULL;
    return p;
}

Is this a bug ? or am I doing something wrong ?

Regards,

Alex Brown
agb@cea.com.au


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