Giter Club home page Giter Club logo

Comments (4)

katyakats avatar katyakats commented on July 25, 2024

Hi Hitoshi!
I am not sure I completely understand your question but I will try to clarify some things.
Regarding the server: you have 2 options. You can call xio_context_stop_loop from a accelio callback (such as on_session_event: for example if you will recieve session tear down). It is also possible to stop the loop from another thread in your application.
You don't necessary need to create one context for one connection. I think you should have the same context/connection ratio as you would if you weren't using accelio's fd, but running accelio event loop. It all depends on your application.
Hope it helps
Katya

from accelio.

mitake avatar mitake commented on July 25, 2024

Hi Katya, thanks a lot for your answer!

This is my code (under construction): https://github.com/mitake/sheepdog/blob/accelio-v0/sheep/xio.c

Every sessions and connections are sharing one context and its fd is registered to the epoll loop. I added xio_context_stop_loop() to the tail of every callback functions as your advice, and seems that long blocking problem was solved (the change isn't pushed to github, only on my local change). Thanks!

However, I'm worrying about a case like below for this change:

  1. client A sends request
  2. client B sends request
  3. server wakes up and calls callback for A
  4. the callback for A calls xio_context_stop_loop()

Will a chance of calling callback for B be lost?

from accelio.

katyakats avatar katyakats commented on July 25, 2024

The callback for B's request won't be lost. There are 2 options:

  1. If B's request already arrived and waiting in the cq, it's callback will be called even if you called xio_stop_loop.
  2. If B's request hasn't arrived yet, you will recieve it once you call xio_run_loop again.
    Hope it helps,
    Katya

from accelio.

mitake avatar mitake commented on July 25, 2024

The behavior of event loop is what I want, thanks!

from accelio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.