phoenix-dataplane / phoenix

Phoenix dataplane system service
https://phoenix-dataplane.github.io
Apache License 2.0
51 stars 9 forks source link

Blocking network APIs in transport engine may block the entire runtime #24

Closed crazyboycjr closed 2 years ago

crazyboycjr commented 2 years ago

Two engines sharing the same runtime may block each other. Such calls are prevalent including get_cq_event, get_cm_event, get_request, and connect. Dedicated mode (each engine dedicates a runtime) does not have this issue, but it is not the final solution.

crazyboycjr commented 2 years ago

Fortunately, all of these APIs are associated with an fd, which can be polled with epoll/poll.