
This is my second attempt, since there was no meaningful answer on the first. I again apologize for cross-posting but I still have no idea which is the correct list to post asio related questions. Roland Schwarz wrote:
One of my objectives is getting cancellation in a platform independent way. Since on windows blocking io cannot be canceled I tried to use asio to emulate the required behavior.
This works well on linux, but the same code fails on windows. During a debug session it appeared to me as if the CancelIO call is not being honored (WindowsXP).
Is this a bug in asio or am I doing something wrong.
I put together a stripped down example to show the "erroneous" behavior.
The examples main thread connects to localhost port 80 and then schedules an async read call.
A second polling thread checks for ctrl-c beeing pressed and invokes the sockets cancel function.
On linux this causes the read handler to terminate with Oeration Cancelled as expected, but on windows the cancel request is simply swallowed.
Any help appreciated!
-- _________________________________________ _ _ | Roland Schwarz |_)(_ | aka. speedsnail | \__) | mailto:roland.schwarz@chello.at ________| http://www.blackspace.at # $Id: Jamroot 49 2008-01-08 14:20:45Z rs $ project cancel ; #use-project boost : "C:/projects/boost/trunk" ; use-project boost : /home/roland/projects/boost/trunk ; lib winsock : : <name>ws2_32 ; lib mswsock : : <name>mswsock ; exe cancel : cancel.cpp : <link>static <threading>multi <target-os>windows:<library>winsock <target-os>windows:<library>mswsock <target-os>windows:<define>_WIN32_WINNT=0x0500 <library>/boost//system <library>/boost//regex <library>/boost//date_time <library>/boost//thread ; install dist : cancel : <location>. ;