Hi, I am having trouble closing properly a soap server, so I'm trying here !
I have a soap_serve method, that is going to use a soap socket to receive messages from network. I am using keep alive sockets and soap->bind_flags = SO_REUSEADDR; on them. The thing is, my method is blocking in soap_serve, more precisely in soap_begin_recv. This is exactly the behavior I want : a socket used may times. However, whenever I want to exit the thread in which I'm waiting on soap_begin_recv, I seem not to be able to do it properly. On Windows, it works fine : I call soap_destroy(fSoap); // dealloc C++ data soap_end(fSoap); // dealloc data and clean up soap_done(fSoap); // detach soap struct on the soap object, and that wakes up the soap_begin_serve and exits the soap_serve method. On Linux, doing the same thing does not seem to wake up my thread. I cannot wait for the thread to finish, as it won't exit properly. Well it will, but I have to wait fSoap->recv_timeout, which I set to 5 minutes... Am I missing something ? I tried so many soap method to wake this soap_begin_serve mathod on Linux, but nothing seems to work... Thanks ! Emmanuel