Subject: Re: [boost] Executor associated to the future continuations (was [thread] boost::future::then)
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2015-10-29 05:49:16


Le 29/10/15 10:08, Vladimir Prus a écrit :
> On 11-Oct-15 9:30 PM, Vicente J. Botet Escriba wrote:
>> Le 10/10/15 16:58, Vicente J. Botet Escriba a écrit :
>>> Le 10/10/15 15:26, Vicente J. Botet Escriba a écrit :
>>>> Le 10/10/15 07:57, Vladimir Prus a écrit :
>>>>>
>>>>> So, the function must be executed in different thread from all the
>>>>> continuations,
>>>>> and it would seem I'd need to something set executor on promise
>>>>> for that to work?
>>>>>
>>>>
>>>> I will see how adding an Executor parameter to promise,
>>>> packaged_task constructors and
>>>> make_ready_future/make_exceptional_future could be implemented if
>>>> this will solve your use case.
>>>>
>>> I've create https://svn.boost.org/trac/boost/ticket/11717 to track
>>> this feature request
>>>
>>>
>> This commit contains a fix for this issue as well as the addition of
>> the VERY-EXPERIMENTAL promise::set_executor and
>> packaged_task::set_executor. These should be replaced by constructors
>> having an executor as parameter.
>>
>> https://github.com/boostorg/thread/commit/b8db8fef8b28414d16c66761badc1c6fcadfc38f
>>
>
> Vicente,
>
> I've created a very early experiment, here:
>
> https://gist.github.com/vprus/3a7bea25e4c0a0e4222d
>
> Does it look generally right for you?
I don't know Qt. It seems ok beside tht fact that you create an Executor
for each Task. Maybe this is not important for you as your Executor
class is adapting Qt.
> I'm worried that Executor interface requires methods like
> close/closed,
This is used to shutdown smoothly the worker threads.
> try_executing_once and reschedule_until that don't seem documented in
> detail.
These should be put in another concept refining executor. I will try to
do it for 1.61.
> Is
> it fine to leave them undocumented in my case?
>
Well, I don't know what do you mean by undocumented and in your case.
Document for what?

Vicente