no access to head_ in worker threads
use full locking for now
Add stealing to threadpool.
Merge pull request #5 from rjpower/master

Add stealing to threadpool.
logging with date; reorder utils.h classes
typedef SpinLock ShortLock
rename ConditionVar to CondVar

"Var" is short for "Variable". To be consistent with short names,
either use "ConditionVariable" or "CondVar". Less typing is great.
minor minor change
randomized rpc function id

Numbering rpc function id is not a good practice, because we can't
register services from 2 .rpc files to rpc::Server, their function
id will conflict. So we randomly choose 0x10000000~0x70000000 as
rpc function id, which lies in positive i32 range.

When registering rpc handler or service to rpc::Server, if there's
a conflict (not likely), return -EEXIST, and do proper cleanup.
properly stop ThreadPool with stealing
proper permission for rpcgen.g
Merge branch 'master' into ec2eval

Conflicts:
	rpc/utils.h