id summary reporter owner description type status milestone component version severity resolution keywords cc 13317 io_service behaviour difference between ubuntu and msvc-14 Diego Barrios Romero chris_kohlhoff "When implementing a basic thread pool using boost::asio::io_service, I am observing some differences in how queued tasks are handled when stopping the io_service. On MSVC 14 (MS Visual Studio 2015), for some reason the queued tasks which were not started yet are not dropped when stopping the io_service but are run nonetheless. These tasks are dropped when running this on Ubuntu 16.04 (GCC 5.4.0). I have simplified and cleaned up the original tests and put them in a single file (attached) which only depends on boost and uses some sleeps to demonstrate the problem. You can build it with the CMakeLists.txt attached if you wish. The output on Ubuntu is as expected: {{{ checkAllWorkIsProcessedBeforeDestruction passed. passed. passed. checkWorkCanBeCancelled passed. passed. passed. checkWorkCanBeInterrupted passed. passed. passed. checkUninterruptableWorkIsNotInterruptedButCanBeDropped passed. passed. passed. passed. }}} This is the output on MSVC 14: {{{ checkAllWorkIsProcessedBeforeDestruction passed. passed. passed. checkWorkCanBeCancelled Error: functor 1 call expected: false current: true Error: functor 2 call expected: false current: true Error: running time expected: 150 current: 402 checkWorkCanBeInterrupted passed. passed. passed. checkUninterruptableWorkIsNotInterruptedButCanBeDropped passed. Error: functor 2 call expected: false current: true passed. Error: running time expected: 250 current: 404 }}} Am I doing something wrong?" Bugs new To Be Determined asio Boost 1.62.0 Problem