OpenKode:KdEvent发送/接受失败

各位好,

我现在在用OpenKode写一个多线程的程序(线程使用OpenKode创建),并在多个线程间发送OpenKode的Event。

我参照了OpenKode1.0.2的Refrence,写了我的代码。不过执行错误。
1).kdWaitEvent(-1) , err code is KD_EAGAIN (5):
在OpenKode1.0.2中的错误信息是:The timeout expired while the event queue was empty

2).kdPostThreadEvent(), err code is KD_EAGAIN (5):
这个函数的说明中,没有 KD_EAGAIN (5)的错误信息;
不过OpenKode定义了KD_EAGAIN (5):Resource unavailable, try again.

根据上面的错误代码,我认为可能是Event Queue初始化的问题。不过,我在OpenKode中并没有找到Event Queue的初始化函数。

各位是否也遇到过这样的问题呢。谢谢帮忙。

This is my source code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/keycodes.h>
#include <time.h>
#include <EGL/egl.h>
#include <KD/kd.h>
#include <GLES/gl.h>

KDThread * pRecvThread = KD_NULL;

void * kdSendThreadFun(void * arg)
{
printf(“SubThreadFunc: Enter\n”);

KDEvent * pSendEvent = KD_NULL;

KDint looCnt = 0;
while(looCnt < 1)
{
pSendEvent = kdCreateEvent();

if(KD_NULL == pSendEvent)
{
printf(“SubThreadFunc: Failed to create KdEvent, and the errCode is:%d\n”, kdGetError());
}
else
{
printf(“SubThreadFunc: Successed to create KdEvent\n”);

if(-1 == kdPostThreadEvent(pSendEvent, pRecvThread))
{
printf(“SubTheadFunc: Failed to send KdEvent, and the errCode is:%d\n”, kdGetError());
}
else
{
printf(“SubTheadFunc: Successed to send KdEvent\n”);
}
}
//sleep(5);
looCnt++;
}

return KD_NULL;
}


KDint kdMain(KDint argc, const KDchar *const *argv)
{
KDThread * pSendThread = KD_NULL;
const KDEvent * pRecvEvent = KD_NULL;

KDust recvTimeout = -1;

pRecvThread = kdThreadSelf();

pSendThread = kdThreadCreate(KD_NULL, &kdSendThreadFun, KD_NULL);

if(KD_NULL == pSendThread)
{
printf(“MainThread: Failed to create sub thread, and errCode is:%d\n”, kdGetError());
}
else
{
printf(“MainThread: Successed to create sub thread\n”);
}

while ((pRecvEvent = kdWaitEvent(recvTimeout)) != 0)
{
printf(“MainThread: Successed to recv KdEvent\n”);

kdDefaultEvent(pRecvEvent);
}

printf(“MainThread: Failed To Receive Event,and the errCode is:%d\n”, kdGetError());

return 0;
}



This is the result

SubThreadFunc: Enter
SubThreadFunc: Successed to create KdEvent
MainThread: Successed to create sub thread
SubTheadFunc: Failed to send KdEvent, and the errCode is:5
MainThread: Failed To Receive Event,and the errCode is:5

那些egl开头的函数是否需要io-winmgr来初始化环境呢?