Comments (4)
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.
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:
- client A sends request
- client B sends request
- server wakes up and calls callback for A
- the callback for A calls xio_context_stop_loop()
Will a chance of calling callback for B be lost?
from accelio.
The callback for B's request won't be lost. There are 2 options:
- If B's request already arrived and waiting in the cq, it's callback will be called even if you called xio_stop_loop.
- 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.
The behavior of event loop is what I want, thanks!
from accelio.
Related Issues (20)
- Question about accelio RPC HOT 3
- Flush error in trace log HOT 1
- memory leak without mr HOT 2
- Slow RDMA req/rsp performance even than TCP HOT 1
- Benchmark failure over RDMA
- Thread stuck in busy loop when RDMA is being used
- compile accelio error in centos6.5 HOT 5
- can accelio be used with a framework like wangle HOT 1
- testing hello_test and not respond
- Keepalive isn't always triggered HOT 8
- hello word Concurrent test error
- (sheepdog) mempool is empty for 12587576 bytes HOT 2
- Peer Direct Support HOT 1
- Huge latency noticed of RDMA session_established for multi-process HOT 4
- SIGSEGV on hello_test HOT 1
- failed to build kmod with MLNX_OFED 4.0-2.0.0.1 driver HOT 1
- Is accelio abandoned? HOT 15
- xio_context_stop_loop sometimes failed to stop loop HOT 11
- kernel built failed as conflict with ofed-3.4
- Is accelio.org website still alive? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from accelio.