Hi,
I have been working on asio from the online documentation for more than a week but I am still confused about the io_service.
Especially about what happens when we pass io_service to so many other things (timer, socket, chat_client etc.)?
I hoped playing around with the codes in tutorial may help me in understanding.
I modified the code a bit from timer3.cpp example. (modified code is in attachment)
When I add another io_service object, I was thinking one would run then the other one would start since in the comments of io_service.hpp it says
* The run() function blocks until all work has finished and there are no
* more handlers to be dispatched, or until the io_service has been stopped.
but when I run two io_service objects
io.run();
io2.run();
I get output from two of them interchangingly. (first print in each line is address of deadline timer, I added in print function to see which thread is running.)
0012FF04 0
0012FEE4 1
0012FEE4 2
0012FEE4 3
0012FF04 4
Could someone help me understand io_service class?
(Maybe some pointers to old discussions could help.)
I also read some papers about Proactor pattern, without too much help.
Maybe example code can be supplied with more comments.
I would also appreciate suggestions and pointers (probably in private emails to ozgur7 AT gmail com) to help me about implementing a simple command server (proxy).
I am trying to implement a server to accept clients and run MySQL queries (example: look up name and password pair in a table) and pass results to clients.
I am using connector/C++ for MySQL part, and that part seems very easy. However I am having difficulty in understanding asio. Do you think, I am overkilling for such a simple thing.
(I thought it could pay back later when I needed to improve my program...)
Thanks in advance,
Best regards,
Ozgur (Oscar) Ozturk
www.DrOzgur.com
+1 (614) 805-4370