On Thu, 2010-02-25 at 20:53 +0000, Lukas Zeller wrote:
> Hello Patrick,
> 
> the caching of the last server response is pretty generic and should  
> be available in libsynthesis as far as I remember (no sources here at  
> 1400m in the Swiss mountains :-)

Hey, you also shouldn't have email! I wasn't expecting an answer before
Monday (and still don't, just replying to document what I find).

It is indeed in the engine, but unconditionally turned off:

bool TSyncHeader::execute(void)
...
      // -> we should resend the previous answer again.
      if (
        fSessionP->getSyncAppBase()->canBufferRetryAnswer()
      ) {
        // we can resend answers
        PDEBUGPRINTFX(DBG_ERROR,("last answer buffered -> sending it
again"));
        fSessionP->fMessageRetried=true;
        return false;
      }
      else {
        // use not foolproof poor man's method
        // %%% This will fail if the previous message received has
        //     changed datastore/session/package states, but will work
if
        //     the retry is within a phase (probable case for long
sessions)
        PDEBUGPRINTFX(DBG_ERROR,("No buffered answer to resend -> just
process msg again (WARNING: possibly messes up session state)"));
      }


The only implementation of canBufferRetryAnswer() that I find returns
"false", so we end up in the else branch and indeed, in some cases the
state gets messed up.

I'll keep looking into how I can enable this. Hints welcome.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.



_______________________________________________
os-libsynthesis mailing list
[email protected]
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to