Print

Print


So it looks like there is a race condition in the poller initialisation. I am working on localhost, so what is happening is that the first handshake request comes back before the poller can initialise itself (see my edited post above). 

The issue is with the recursive mutex (``chMutex``) in ``XrdSys::IOEvents::Channel``. If a context switch happens in the poller thread after ``PollPoll::Include`` unlocks the channel mutex, but before it gets locked again in ``PollPoll::Init``, then the callback thread can lock the mutex in ``PollPoll::CbkXeq`` and try to do stuff with the poller before the channel is ready.

The channel mutex gets locked and unlocked all over the place, and I'm finding it a little difficult to see a way of avoiding this at the moment.

---
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/5#issuecomment-17017592

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1