About Queue Push/Pull

asked 2015-03-17 03:24:03 -0700

bling gravatar image
  1. I found that the function "AJ_QueuePush()" and "AJ_QueuePull()" should be added in critical sections. The race condition happened before I added.
  2. My FW will hang after calling the function "sock.rx.recv()" in "AJ_Discover()". I found that it is because that the function will call AJ_QueuePull().However the FW doesn't call any AJ_QueuePush(). Is there anything I can check?

Thank you

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2015-03-17 12:21:13 -0700

jprestwo gravatar image

AJ_QueuePush/Pull are used to exchange data between the application layer, AllJoyn, and the driver layer, WSL. When data is received it is stashed in a buffer until AllJoyn calls the drivers receive function. The receive function then waits on AJ_QueuePull, or until the timeout passed to receive.

If you are stuck at AJ_QueuePull in AJ_Discover then there is probably no routing node on your network. If you are able to connect to an access point and obtain an IP address via DHCP then WSL is working the way it should. It uses the same queuing mechanism to connect to an AP as it does to send/receive data.

edit flag offensive delete publish link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2015-03-17 03:24:03 -0700

Seen: 32 times

Last updated: Mar 17 '15