Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
papi: fix async support for socket transport
[vpp.git]
/
src
/
vpp-api
/
python
/
vpp_papi
/
vpp_transport_socket.py
diff --git
a/src/vpp-api/python/vpp_papi/vpp_transport_socket.py
b/src/vpp-api/python/vpp_papi/vpp_transport_socket.py
index
3a8c332
..
174ab74
100644
(file)
--- a/
src/vpp-api/python/vpp_papi/vpp_transport_socket.py
+++ b/
src/vpp-api/python/vpp_papi/vpp_transport_socket.py
@@
-42,7
+42,7
@@
class VppTransport:
while True:
try:
rlist, _, _ = select.select([self.socket, self.sque._reader], [], [])
while True:
try:
rlist, _, _ = select.select([self.socket, self.sque._reader], [], [])
- except
socket.error
:
+ except
(socket.error, ValueError)
:
# Terminate thread
logging.error("select failed")
self.q.put(None)
# Terminate thread
logging.error("select failed")
self.q.put(None)
@@
-65,14
+65,14
@@
class VppTransport:
return
# Put either to local queue or if context == 0
# callback queue
return
# Put either to local queue or if context == 0
# callback queue
- if self.parent.has_context(msg):
+ if
not self.do_async and
self.parent.has_context(msg):
self.q.put(msg)
else:
self.parent.msg_handler_async(msg)
else:
raise VppTransportSocketIOError(2, "Unknown response from select")
self.q.put(msg)
else:
self.parent.msg_handler_async(msg)
else:
raise VppTransportSocketIOError(2, "Unknown response from select")
- def connect(self, name, pfx, msg_handler, rx_qlen):
+ def connect(self, name, pfx, msg_handler, rx_qlen
, do_async=False
):
# TODO: Reorder the actions and add "roll-backs",
# to restore clean disconnect state when failure happens durng connect.
# TODO: Reorder the actions and add "roll-backs",
# to restore clean disconnect state when failure happens durng connect.
@@
-125,6
+125,7
@@
class VppTransport:
self.message_table[n] = m.index
self.message_thread.daemon = True
self.message_table[n] = m.index
self.message_thread.daemon = True
+ self.do_async = do_async
self.message_thread.start()
return 0
self.message_thread.start()
return 0