pthread выдает ошибку из-за push_back ()

я пытаюсь запустить конечный автомат в отдельном потоке:

int main(int argc, char *argv[])
{

uint8_t payload[] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88};

MessageA* message_temp = new MessageA(0x0F, payload);  //MessageA derives from Message

std::vector<Message*> outBuffer;

pthread_t t1;

int rc;

rc = pthread_create(&t1, NULL, createFsmThread,pParam);

rc = pthread_join(t1,NULL);

/* Perform some operations */

for(i = 0; i < 5; i++)
{

outBuffer.push_back(message_temp);

}

return EXIT_SUCCESS;

}

void *createFsmThread(void* lpParam)
{
std::cout << "Start the FSM Threat for Message Handling :\n\n";

struct fsm_thread_args *pParam = (fsm_thread_args*)lpParam;

// fsm = new CSMManager(pParam-> ........ ); not important for the error

}

Pthread не может успешно вернуться из-за операции push_back (). Если я выведу команду из цикла push_back, поток может успешно вернуться, и программа завершит работу в допустимом состоянии. Но с циклом push_back возврат потока не работает успешно. Я думаю, что причиной повреждения памяти может быть тип, но я не знаю, как решить эту проблему !!

Кто-нибудь может мне помочь?

Большое спасибо!

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]