hedgewars/uFLIPC.pas
branchqmlfrontend
changeset 11451 6e9b12864856
parent 11450 0c75fa9ce340
child 11452 78860824b5a5
equal deleted inserted replaced
11450:0c75fa9ce340 11451:6e9b12864856
     5 procedure initIPC;
     5 procedure initIPC;
     6 procedure freeIPC;
     6 procedure freeIPC;
     7 
     7 
     8 procedure ipcToEngine(s: shortstring);
     8 procedure ipcToEngine(s: shortstring);
     9 procedure ipcToEngineRaw(p: pointer; len: Longword);
     9 procedure ipcToEngineRaw(p: pointer; len: Longword);
       
    10 procedure ipcCleanEngineQueue();
    10 //function  ipcReadFromEngine: shortstring;
    11 //function  ipcReadFromEngine: shortstring;
    11 //function  ipcCheckFromEngine: boolean;
    12 //function  ipcCheckFromEngine: boolean;
    12 
    13 
    13 procedure ipcToNet(s: shortstring);
    14 procedure ipcToNet(s: shortstring);
    14 procedure ipcToNetRaw(p: pointer; len: Longword);
    15 procedure ipcToNetRaw(p: pointer; len: Longword);
    97     msg.str:= s;
    98     msg.str:= s;
    98     msg.buf:= nil;
    99     msg.buf:= nil;
    99     ipcSend(msg, queueFrontend)
   100     ipcSend(msg, queueFrontend)
   100 end;
   101 end;
   101 
   102 
       
   103 procedure ipcCleanEngineQueue();
       
   104 var pmsg, t: PIPCMessage;
       
   105     q: PIPCQueue;
       
   106 begin
       
   107     q:= queueEngine;
       
   108 
       
   109     SDL_LockMutex(q^.mut);
       
   110 
       
   111     pmsg:= @q^.msg;
       
   112     q^.last:= pmsg;
       
   113 
       
   114     while pmsg <> nil do
       
   115     begin
       
   116         t:= pmsg^.next;
       
   117 
       
   118         if pmsg^.buf <> nil then
       
   119             FreeMem(pmsg^.buf, pmsg^.len);
       
   120 
       
   121         if pmsg <> @q^.msg then
       
   122             dispose(pmsg);
       
   123         pmsg:= t
       
   124     end;
       
   125 
       
   126     q^.msg.next:= nil;
       
   127     q^.msg.str[0]:= #0;
       
   128     q^.msg.buf:= nil;
       
   129 
       
   130     SDL_UnlockMutex(q^.mut);
       
   131 end;
       
   132 
   102 procedure ipcToNet(s: shortstring);
   133 procedure ipcToNet(s: shortstring);
   103 var msg: TIPCMessage;
   134 var msg: TIPCMessage;
   104 begin
   135 begin
   105     msg.str:= s;
   136     msg.str:= s;
   106     msg.buf:= nil;
   137     msg.buf:= nil;