hedgewars/uFLIPC.pas
branchqmlfrontend
changeset 12859 a03f245243b0
parent 12858 0c6fb706f747
child 12860 e33bcb9d5e9c
equal deleted inserted replaced
12858:0c6fb706f747 12859:a03f245243b0
     4 
     4 
     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); cdecl;
    10 procedure ipcSetEngineBarrier();
    10 procedure ipcSetEngineBarrier(); cdecl;
    11 procedure ipcRemoveBarrierFromEngineQueue();
    11 procedure ipcRemoveBarrierFromEngineQueue(); cdecl;
    12 //function  ipcReadFromEngine: shortstring;
    12 //function  ipcReadFromEngine: shortstring;
    13 //function  ipcCheckFromEngine: boolean;
    13 //function  ipcCheckFromEngine: boolean;
    14 
    14 
    15 procedure ipcToFrontend(s: shortstring);
    15 procedure ipcToFrontend(s: shortstring);
    16 procedure ipcToFrontendRaw(p: pointer; len: Longword);
    16 procedure ipcToFrontendRaw(p: pointer; len: Longword);
   103     msg.str:= s;
   103     msg.str:= s;
   104     msg.buf:= nil;
   104     msg.buf:= nil;
   105     ipcSend(msg, queueFrontend)
   105     ipcSend(msg, queueFrontend)
   106 end;
   106 end;
   107 
   107 
   108 procedure ipcSetEngineBarrier();
   108 procedure ipcSetEngineBarrier(); cdecl;
   109 begin
   109 begin
   110     SDL_LockMutex(queueEngine^.mut);
   110     SDL_LockMutex(queueEngine^.mut);
   111 
   111 
   112     inc(queueEngine^.last^.barrier);
   112     inc(queueEngine^.last^.barrier);
   113 
   113 
   114     SDL_UnlockMutex(queueEngine^.mut);
   114     SDL_UnlockMutex(queueEngine^.mut);
   115 end;
   115 end;
   116 
   116 
   117 procedure ipcRemoveBarrierFromEngineQueue();
   117 procedure ipcRemoveBarrierFromEngineQueue(); cdecl;
   118 var pmsg, t: PIPCMessage;
   118 var pmsg, t: PIPCMessage;
   119     q: PIPCQueue;
   119     q: PIPCQueue;
   120 begin
   120 begin
   121     q:= queueEngine;
   121     q:= queueEngine;
   122 
   122 
   165     q^.msg.buf:= nil;
   165     q^.msg.buf:= nil;
   166 
   166 
   167     SDL_UnlockMutex(q^.mut);
   167     SDL_UnlockMutex(q^.mut);
   168 end;
   168 end;
   169 
   169 
   170 procedure ipcToEngineRaw(p: pointer; len: Longword);
   170 procedure ipcToEngineRaw(p: pointer; len: Longword); cdecl;
   171 var msg: TIPCMessage;
   171 var msg: TIPCMessage;
   172 begin
   172 begin
   173     msg.str[0]:= #0;
   173     msg.str[0]:= #0;
   174     msg.len:= len;
   174     msg.len:= len;
   175     msg.buf:= GetMem(len);
   175     msg.buf:= GetMem(len);