On Friday 25 October 2002 9:28 am, Lars Gullik Bjønnes wrote:
> Angus Leeming <[EMAIL PROTECTED]> writes:
> | On Friday 25 October 2002 8:59 am, Lars Gullik Bjønnes wrote:
> | > Angus Leeming <[EMAIL PROTECTED]> writes:
> | > | John,
> | > |
> | > | attached is some rough and ready, proof of principle
> | > | code that appears to do the job.
> | > |
> | > | To generate an autosave type
> | > |         buffer-auto-save
> | > | in the minibuffer. You should get "Autosaving Buffer"
> | > | printed to the console. If you have the Child Processes
> | > | dialog open, you should also get something flashing up
> | > | there, indicating that the process is being stored by
> | > | the ForkedController as we desire.
> | > |
> | > | I certainly can't generate zombies, but maybe you'll
> | > | have a go too?
> | >
> | > Ok, Good work.
> | >
> | > ...but I am not sure that I agree with the interface.
> | > Especially the ForkedBase(?).
> | >
> | > I was imagining some interface like:
> | >
> | >         processController.call(boost::bind(autoSave,
> | > &buffer), Proc::background);
> | >
> | >
> | > which would fork, and run the function object in the newly
> | > created process.
> |
> | I tried that. The problem is that we'd need
> |
> | template<typename Func1, typename Arg1>
> | processController::call(Func1 & func, Arg1 const & arg1);
> |
> | template<typename Func2, typename Arg1, typename Arg2>
> | processController::call(Func1 & func, Arg1 const & arg1,
> | Arg2 const & arg2);
> |
> | etc.
>
> No you wouldn't. All that would be hidden with the
> boost::function functor.
>
> processController::call(boost::function0<void> func);
>
> should be enough.
>
> and then boost::bind would be used to reduce whatever function
> to that signature.
>
> boost::function<void> func = boost::bind(autoSave, arg, arg
> ,arg);
>
> func(); // call without args, they are already bound.

Oh, good man! Thank you. I'll put this in my secret stash of things
for later.

> | Feel free to prove me wrong here, but my proposed solution
> | is little more than rearranging code that we know works. We
> | are in bug-fixing mode, remember.
>
> as such it is quite ok, but there is a bit more coupling now,
> isn't it?

Probably. But I'll get it working as it is because it will apply cleanly to 
1.2.X also.

Angus

Reply via email to