[fpc-pascal] Best way to transfer data between applications?
Jorge Aldo G. de F. Junior
jagfj80 at gmail.com
Thu Nov 1 06:48:44 CET 2012
i reiterate that my Pascal-Actor-Model can do exactly what you are saying...
writing a "save file in background" type of actor is trivial, and the
synchronization is already done...
2012/10/31 Noah Silva <shiruba at galapagossoftware.com>:
> Hi Aldo,
>
> Well it's not just synch problems with threads, I've found threads to not be
> so reliable under FPC for anything but trivial test cases. Sometimes the
> program is incredibly slowed when using threads. Also, Unix and Windows
> have to be treated differently, etc. - which is not entirely FPC's fault.
> Making separate applications gives a number of advantages (which I listed in
> my last mail). The need to send data structures back and forth is the only
> real disadvantage - but that's just trading for synchronization issues.
>
> As an aside, threads are one area where it seems ObjC has a huge advantage.
> I wish there was a way to just say something like
> "RunInBackground(procedure)" in FPC. Background threads not being able to
> touch the GUI, etc. makes it all but useless for many purposes. Of course
> for scientific computing type applications where problems can be partitioned
> neatly, threads make perfect sense and work relatively well. For things
> like "I want to save this file in the background while the user continues to
> use the word processor", I've found they aren't anywhere near worth the
> trouble to implement in FPC - yet.
>
> For example, if I want only one instance of a daemon running, then I have to
> make it a separate process (reasonably anyway). If I want it to be 64bit,
> but the GUI has to be 32bit, then it has to be a separate process, etc.
>
> I will take a look at your framework, because I am interested in all sorts
> of new developments, but it's unlikely I will re-code everything to use a
> particular design pattern or framework.
>
> The original question I meant to ask was basically "Is there an easy/mostly
> automatic way to transport data structures between processes", and from all
> the discussion on this list - the answer seems to be "no." Encoding is one
> piece, data transfer is one piece, and the glue in-between (Class factories,
> etc.) is something one probably has to put together themselves. Either way,
> it makes everything more complicated to do something that is in principle
> relatively simple.
>
> Thank you,
> Noah Silva
>
> 2012/10/31 Jorge Aldo G. de F. Junior <jagfj80 at gmail.com>
>>
>> Hm...
>>
>> if you gave up using threads because of the problem with
>> synchronization then you might have a look at my pascal-actor-model
>> framework...
>>
>> its a set of classes that implements Hewitt's Actor Model Concurrency
>> and its able to solve exactly that...
>>
>> http://code.google.com/p/pascal-actor-model/
>>
>> Code can run assynchronously or synchronously, depending on your needs.
>>
>> theres a mainthreadqueue that lets actors talk to the main thread
>> (where the GUI elements usually reside) using blocking (with timeout)
>> protocol.
>>
>> All messages are actors and can be streamed across the network, etc..
>> (i am in the process of implementing distributed computing based on
>> that actor model) etc...
>>
>> there are already a lot of components and the basic actor
>> functionality is already working.
>>
>> _______________________________________________
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
>
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list