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: [email protected] For additional commands, e-mail: [email protected]
