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?