a problem of openh323 on multi-processor

jim zhang
2009-10-12
2013-06-03
  • jim zhang
    jim zhang
    2009-10-12

    when i use openh323 to decode h323 packet, if i run all decode threads on the first processor, it's ok for run a week long. but if it use SetThreadAffinityMask to put each decode thread on different processor, it break after several minute with reporter "access violation(0x0000005), ". and the break point is in ptlib.dll each time.

    BOOL PAbstractArray::SetSize(PINDEX newSize)
    {
    PINDEX newsizebytes = elementSize*newSize;
    PINDEX oldsizebytes = elementSize*GetSize();

    char * newArray;

    if (!IsUnique()) {

    if (newsizebytes == 0)
    newArray = NULL;
    else {
    if ((newArray = (char *)malloc(newsizebytes)) == NULL)
    return FALSE;

    if (theArray != NULL)
    memcpy(newArray, theArray, PMIN(oldsizebytes, newsizebytes));// break at this point

    here is my code :
    ProcessH225Data( UCHAR *pData, int size)
    {
    PPER_Stream strm( pData, size );
    H225_H323_UserInformation m_h225; // break at this point

    BOOL ret = m_h225.Decode( strm );

    dose any body encounter this problem, and how to fix it?