sort of...this is what I had in mind:
```coffeescript
deregister: (cb) =>
  @sendCommand 'CANT_DO', @name
  async.whilst(
    => @socket.bufferSize > 0 or @work_in_progress
    (cb_w) -> setTimeout cb_w, 1000
    cb
  )

get_next_job: =>
  @sendCommand 'GRAB_JOB'
```