Removing some of the elements from vibe.core.concurrency.Future[] futurelist
kerdemdemir
kerdemdemir at hotmail.com
Tue Oct 31 08:18:37 UTC 2017
> I'd take a look at why the error message says
> `Future!(UserData)[]) to Future!(AnalyzeData)[]`
> is AnalyzeData the type returned by ProcessResponceData?
>
> Alternatively you could use a singly linked list and splice out
> elements that pass the filter predicate. I think you'd have to
> roll your own though.
I am sorry Wilson I normally in my code UserData is AnalyzeData =
UserData but I replace the name to make it more understandable.
For now I solved my problem like
vibe.core.concurrency.Future!(UserData)[] futurelist;
foreach( elem; elemList )
{
auto future = vibe.core.concurrency.async(
&elem.makeWebRequest );
futurelist ~= future;
}
int maximumSleepTime = 0;
while(futurelist.any!(a => !a.ready())) //--> Blocking until all
of them ready
{
maximumSleepTime++;
sleep(10.msecs);
if ( maximumSleepTime > 2000 )
return;
}
futurelist.each!(a=> Process(a.getResult()));
Unfortunately that is really bad when I make 250 web requests and
only one of them is bad(I mean not ready). And 249 request have
to wait for the bad one.
I will take a deeper look to data structure you suggested.
Thanks
More information about the Digitalmars-d-learn
mailing list