Доброго времени суток, друзья!
Я пишу плагин для Pidgin. В нем я создаю сторонний поток, там слушаю порт и при получении команды отправляю сообщение пользователю. Так вот для того чтобы отправить сообщение нужно создать создать
PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acc, buddy);
но purple_conversation_new при выполнении из стороннего потока крэшит пиджин. Из основного потока все нормально. Эта строка создает диалоговое окно с пользователем. Вдальнейшем сообщение пользователю передается так:
PurpleAccount *acc = FindNeededAccount(buddy);
if(acc == NULL) {
printf("acc == NULL");
return;
}
PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acc, buddy);
purple_conv_im_send(PURPLE_CONV_IM(conv), message);
Я обычно пишу на C++ и там есть TThread и std::thread, которые позволяют выполнять функции в синхронизации с основным потоком. Подскажите как это можно сделать в чистом Си?