[fpc-devel] simpleipc issues

Tomas Hajny XHajT03 at hajny.biz
Tue Sep 15 09:18:40 CEST 2015


On Tue, September 15, 2015 08:58, Michael Van Canneyt wrote:
> On Mon, 14 Sep 2015, Ondrej Pokorny wrote:
>
>> I've developed a "single/multiple instances" feature for the Lazarus
>> IDE. For
>> this feature I need an IPC. First I tried to use simpleipc but I have
>> struggled on bugs and missing functionality.
>>
>> Particularly what I found:
>> 1.) BUG: You can register multiple servers on Windows with the same name
>> (with StartServer procedure).
>> 2.) Small issue: simpleipc uses exceptions if something fails (e.g. in
>> StartServer procedure). I would prefer using a function with boolean
>> result
>> (true = OK, false = fail).
>> 3.) MISSING: Multiple clients (from different processes) talk to one
>> server.
>> 4.) MISSING: Client is able to receive a response on a request.
>> 5.) MISSING: (Optionally, not default) client sends a request to a
>> server
>> that isn't running. The server is able to handle these requests when it
>> is
>> started.
>>
>> So I developed "advancedipc.pas" that does what I need. It can do
>> everything
>> that is in simpleirc but a little bit differently (I changed the
>> exception
>> behavior and also method names). The question is now what to do?
>> 1.) Include advancedipc.pas into FCL as a standalone unit.
>> 2.) Make advancedipc.pas backwards compatible to simpleipc.pas and use
>> the
>> new code in simpleipc.pas.
>
> Well, both 1 and 2 are the way to go if you want it included in FPC :-)
>
> I see no point in including duplicate functionality, it means duplicate
> maintenance.
> You can keep it as separate units, just make sure simpleipc runs on top of
> advancedipc.
 .
 .

One additional remark - it would be useful to have a test/example using
advancedipc directly, so that users can base their code on it and platform
maintainers can test easily and reliably whether the code works correctly
on their platform (e.g. me on OS/2 ;-) ).

Tomas





More information about the fpc-devel mailing list