@ worker: more reasonable type aliases

@ worker::result now uses lock_guard instead of unique_lock because
  it won't be used with a conditional variable.
@ worker::init now is independent from worker::update.