Il 1/13/2012 18:59 PM, Jason Gunthorpe ha scritto:
On Fri, Jan 13, 2012 at 12:46:00PM +0100, Flavio Baronti wrote:
When I want to stop the thread reading rdma events, I kill it with a
pthread_cancel(), since it is blocked in a rdma_get_cm_event(). This
causes a leak of the evt variable in the rdma_get_cm_event()
function. Not a big deal, of course, but a couple of
pthread_cleanup_push(free, evt) and pthread_cleanup_pop() should
solve it.

None of the IB libraries have been audited for posix async cancellation
safety.

To do this work someone would have to review every call to determine
if it is a cancelation point, and document this as part of the API.

Then review if any of the internal cancelation points in the
cancelable functions require a resource clean up, and add it.

IHMO, cancelation should not be used with threads that call into the
ib libraries.

Jason


Ok, but what is then the proper way to stop a thread blocked on 
rdma_get_cm_event() (or on ibv_get_cq_event())?

Flavio
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to