On Wed, Apr 20, 2011 at 7:17 PM, Bastien ROUCARIES <roucaries.bast...@gmail.com> wrote: >> Is the gnulib select() only intended to be used with nonblocking sockets on >> windows? > > I have just tested the program at the end of the file, it thread is > blocked when enable =0 (block socket) and enable=1 it fail with > WSAEWOULDBLOCK > > So i possible stragegy will be: > 1. createathread TID from parent > 2. in TID do WSAIoctl(sock, SIO_ADDRESS_LIST_CHANGE,NULL, 0, NULL, > 0,&bytes,NULL,NULL); > 3. in parent: if TID returned with WSAEWOULDBLOCK tag socket non blocking > 4. query running state of TID, if suspended socket is blocking, kill > thread and mark socket blocking
It will not work using a thread (thread are not cancelable under windows), but using a new process with inherited socket it will work slow but a little bit as the projected openat function using fork Bastien