X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fmsg.c;h=17d089f9238babbda6375f9d35a3f776a1393a92;hb=45444b9d268e6fbc9d5cf813e0b421536d86d508;hp=3b6a3ba54316ab864c31ee5024d8036e9819e184;hpb=19dae42a211f5dff3471b7a53cf1de3b9518d330;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c b/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c index 3b6a3ba5..17d089f9 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c @@ -11,6 +11,7 @@ #include #include // AxWin3 common #include "include/internal.h" +#include "include/ipc.h" // === CONSTANTS === enum eConnectionType @@ -120,8 +121,7 @@ tAxWin_IPCMessage *AxWin3_int_GetIPCMessage(void) switch(giConnectionType) { case CONNTYPE_SENDMESSAGE: - // TODO: Less hack, I need a version of select for GetMessage etc - if(SysGetMessage(NULL, NULL) == 0) sleep(); + _SysWaitEvent(THREAD_EVENT_IPCMSG); while(SysGetMessage(NULL, NULL)) { pid_t tid; @@ -164,3 +164,15 @@ tAxWin_IPCMessage *AxWin3_int_GetIPCMessage(void) return ret; } +tAxWin_IPCMessage *AxWin3_int_WaitIPCMessage(int WantedID) +{ + tAxWin_IPCMessage *msg; + for(;;) + { + msg = AxWin3_int_GetIPCMessage(); + if(msg->ID == WantedID) return msg; + AxWin3_int_HandleMessage( msg ); + free(msg); + } +} +