qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adel Boutros <adelbout...@live.com>
Subject Re: [Qpid Dispatcher] Runtime behavior on SunOS
Date Tue, 19 Apr 2016 16:37:38 GMT
Hello Ted,

After reducing the number of threads to 1 and some debugging, we have found
the problem is actually related to *pipe *and *poll *calls on Solaris/Linux.

In the test, we define 2 file descriptors, one for read and one for write in
*tests/server_tests.c*
ufd_write = qd_user_fd(qd, fd[1], (void*) 1);
ufd_read  = qd_user_fd(qd, fd[0], (void*) 0);

When comparing between Linux and Solaris, in
*src/posix.driver.c:qdpn_driver_wait_2()* , we find that the first call to
poll will set the "revents" of the "fd[0]" to 0 on Linux and then it is
always non-zero. Whereas on Solaris it is always non-zero.

Do you have an idea why the "revents" is never "0" on Solaris?

When debugging in *qdpn_driver_wait_2*, *fd[0]* is actually represented by
d->fds[2]. So to see the revents, you can output the value of
*d->fds[2].revents*

Checking the man of poll, a positive value of revents indicated there are
events to read on the pipe whereas a 0 value indicates nothing to read.

PS: We are working on Qpid-dispatch 0.5.0

Regards,
Adel Boutros
www.murex.com



--
View this message in context: http://qpid.2158936.n2.nabble.com/Qpid-Dispatcher-Runtime-behavior-on-SunOS-tp7641941p7642306.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message