Boost logo

Boost Users :

From: Manuel Jung (gzahl_at_[hidden])
Date: 2008-09-02 10:50:35


Stjepan Rajko wrote:

> On Thu, Aug 28, 2008 at 9:10 PM, Stjepan Rajko <stipe_at_[hidden]> wrote:
>> On Thu, Aug 28, 2008 at 1:19 PM, Manuel Jung <gzahl_at_[hidden]> wrote:
>>>>
>>>> * The example is hard-wired to a void(int) signature. It wouldn't be
>>>> hard to generalize, if there is interest.
>>>
>>> I need to have it generalize. Would be great if you could do it,
>>> otherwise, i'll try at the weekend.
>>>
>>
>> It just need slight tweaks in things that are already there. I might
>> not find time until Sunday, but once I get to it it shouldn't take me
>> long.
>>
>
> I have it generalized now. The only downside is that the signature
> has to be specified as a part of the make_async call (I renamed delay
> to async). We can remove that requirement for certain components in
> the future.
>
> I have committed the changes to the sandbox (the example now also uses
> thread_safe_signals). I haven't tested it extensively, so there are
> probably problems to work out. If you run into any, please let me
> know.
>
> Kind regards,
>
> Stjepan

Hey,

The current implementation does not cover priority or smart threadpools. I
need to submit a priority type (for instance just an int) with the first
submit and this value needs to be submit everytime make_async submits a new
task. This priority value changes with every data submitted to the dataflow
network. And it is very importend: You wont need possible breakpoints in
your dataflow network (the make_async calls), if there is no priority
system. (Well it would make sense if you split signals with "|" opeartor,
so the rest of the dataflow could be parallelized..)

II have antother thaught: The make_async filter is ok as interface, to split
the dataflow. But i don't like that i loose control over the task object.
If i have no task object, i am not able to interrupt that task. And
interruptions of tasks would be very handy to make the program more stable.
I could control the runtime of tasks and interrupt and kill them, if they
didn't respond. Maybe this is out of the scope of dataflow.signals, but i
think i would prefer an implementation of dataflow with futures, if that is
possible. I think that would make the integration of the threadpool library
much more natural. I'm not very familiar with futures yet, still learning,
how to use them best. But i will think about this and let you know if i can
think of a way to do it.

I don't no how much i could contribute to your rewrite of the dataflow
library, but altough it would be nice if you would keep me informed. At the
moment i have relativly much free time, but by the time the new semester
starts, my time will be much shorter.

Kind Regards
Manuel


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net