X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fmsg.c;h=2b501672ac50a87cfbce426887d0b9c63475809d;hb=11dbd684e9a3d907d43d71a3145205f1a86992fb;hp=c1d562f32d83bdd2345daa1d40194ee5b9240695;hpb=d2e9501431148e85345cefe6315f0eace0dfd777;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 c1d562f3..2b501672 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/msg.c @@ -16,6 +16,7 @@ // === CONSTANTS === enum eConnectionType { + CONNTYPE_NONE, CONNTYPE_SENDMESSAGE, CONNTYPE_UDP, CONNTYPE_TCP @@ -121,12 +122,16 @@ 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(); - while(SysGetMessage(NULL, NULL)) + for( ;; ) { pid_t tid; - len = SysGetMessage(&tid, NULL); + + // Wait for a message to arrive + while( !(len = SysGetMessage(&tid, NULL)) ) + { + _SysWaitEvent(THREAD_EVENT_IPCMSG); + } + // Check if the message came from the server if(tid != giConnectionNum) {