[fpc-devel] Suggestion: reference counted objects
    Boian Mitov 
    mitov at mitov.com
       
    Mon Sep 22 20:54:16 CEST 2014
    
    
  
Here is example from our implementation:
for AIndex := 0 to Length( AList ) - 1 do
  AExecutionTask.Add(
      FExecutor.Execute(
          TDelegate.Capture<Integer>( AIndex,
              procedure( ALocalIndex : Integer )
              begin
                Sleep( 1000 ); // Simulate thread busy doing time consuming 
task
                AList[ ALocalIndex ] := ALocalIndex * 2;
              end
            )
        )
    );
AExecutionTask.WaitFor();
Notice the need for TDelegate :-( This is due to the fact that Delphi unlike 
C++11 does not allow the option to capture local context my value, and 
captures everything by reference :-( .
This is something to be considered when implementing anonymous methods or 
lambdas in FPC, especially for multithreading and parallel execution.
With best regards,
Boian Mitov
-------------------------------------------------------
Mitov Software
www.mitov.com
-------------------------------------------------------
-----Original Message----- 
From: Michael Schnell
Sent: Monday, September 22, 2014 5:58 AM
To: fpc-devel at lists.freepascal.org
Subject: Re: [fpc-devel] Suggestion: reference counted objects
On 09/22/2014 02:51 PM, Sven Barth wrote:
>
> Then you should also not use interfaces, strings and arrays, because they 
> use the same mechanisms.
>
Yep. The advanced developer should know what he is doing.
>
> What us confusing there?
>
Of course I do know the pitfalls.
If fpc would provide a syntax for "parallel loop" and "future variables"
e.g. similar to what Prism offers, even more inexperienced users will be
inclined to use (invisible) threads. I suppose it's not possible to
avoid the "confusion" that is introduced by this, but it should be
limited as much as possible. (No idea how.)
-Michael
_______________________________________________
fpc-devel maillist  -  fpc-devel at lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel 
    
    
More information about the fpc-devel
mailing list