Difference between revisions of "Boostcon 2011"
From Just in Time
Line 27: | Line 27: | ||
Use shared_ptr and shared_from_this to automatically manage object lifetime. | Use shared_ptr and shared_from_this to automatically manage object lifetime. | ||
+ | ===Thinking Asynchronously=== | ||
+ | Wrong: | ||
+ | <code lang="cpp"> | ||
+ | if (socket.connected()) | ||
+ | { | ||
+ | socket.write(); | ||
+ | } | ||
+ | </code> |
Revision as of 16:04, 16 May 2011
This page will contain my notes taken during Boostcon 2011
Library in a Week
Review tools
- Code Collaborator
- Crucible (Crubicle?)
Boost.Asio
Chris Kohlhoff
fundamental concepts that went into the library. Use them in your programs.
One key criterium: should not be a framework, but a toolkit. This gives you more freedom.
- io_service
- "your channel into the operationg system"
Challenges of asynchronous programming:
- Object lifetimes
- Thinking asynchronously
- Threads
- ?
Object lifetimes
handlers and buffers are taken by value, a copy is made. Buffers are shallow.
Arguments taken by non-const reference: caller needs to guarantee lifetime. this-pointer should outlive operation. Newby problem: providing a buffer that goes out of scope (local variable for instance).
Use shared_ptr and shared_from_this to automatically manage object lifetime.
Thinking Asynchronously
Wrong:
if (socket.connected())
{
socket.write();
}