freebsd license
use emplace on map and sets
emplace is not well supported, switch back to insert(value_type)
Use c++ 11 rand in thread pool.
name convention: postfix _ on private members
merge simple-log-service into simple-rpc
threadpool getting multiple jobs each time
auto -> auto&
Dump current parse position when an error occurs.
Add RAII handler for helping to send a bunch of requests and wait for
responses.

Add utility functions for getting hostname, finding an open port.

Just include server/client headers in generated files.
Add synchronization tester.
Merge pull request #2 from rjpower/master

Dump current parse position when an error occurs.
bug fix: bookmark goes beyond read barrier

RPC marshaling is done with a buffer. IO threads reads from
head of the buffer, and worker threads append reply message
to end of the buffer. To reduce lock contension between IO
threads and worker threads, the buffer provides a snapshot
of current tail position (read barrier). IO thread may read
till this point without holding any locks.

In order to add size info to RPC packets, we have to write a
placeholder at the begining of a packet, and update it when
message body is fully written and the size is determined.
Issue #3 happens when read barrier goes behind a placeholder,
which means a not-ready-yet segment is exposed to IO threads.

This commit should fix issue #3 by disallowing the behavior
mentioned above.
minor enhance
hmm, dont have a good solution, use full locking now
Use macros to capture file, line number when logging.
Merge pull request #4 from rjpower/master

Use macros to capture file, line number when logging.
add basename(fpath)
overloaded Log utils
no access to head_ in worker threads