On 12/19/2013 12:37 AM, Leopold Palomo-Avellaneda wrote:
Hi,

I'm developing an application that need (as always) interchange data between a 
realtime part and non-realtime.

Looking on the documentation and surfing on the web I have found interesting 
for my app the examples of xddp protocol. Some time ago, there was an 
interesting mail about it [1].

There, the original author ask one thing that I would like to be sure that I 
understood. On the examples, the realtime thread uses the function recvfrom() 
to receive data from the non-rt thread.

In the mail, the original author asked about make recvfrom
call non-blocking in xddp context, and *Philippe Gerum* answered that
MSG_DONTWAIT should be set in flags.

So, my question is that using that flag, some code like this:


/* Read back packets echoed by the regular thread */
ret = recvfrom(s, buf, sizeof(buf), 0, NULL, 0);
if(ret <= 0)
     fail("recvfrom");

recvfrom will not be blocked, but it will return 0?

May I understood that if there's data on the sockect recvfrom will
return something and if no, it would not be blocked and return something?


Standard behavior when no data present: immediate return with ret = -1, errno = EWOULDBLOCK/EAGAIN.

--
Philippe.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to