io_service::poll_one Run the io_service object’s event processing loop
to execute one ready handler.
vs
io_service::run_one Run the io_service object’s event processing loop
to execute at most one handler.
From that explanation it would seem poll_one could execute more than one handler? Does run_one or poll_one use any thread that’s called run() or only the thread that calls poll_one/run_one?
The documentation for ASIO is very sparse.
poll_onewill return immediately (non-blocking) in case there is no event to process.run_onewill block the calling thread until one event is ready to process.You could also check some documentation here