virtual bool Run()
    {
        // This runs in worker threads.

        // I can access my own context without lock.
        size_t my_context = g_context[_id];

        // Now to deal with TimeoutPool.
        LOG(DEBUG) << "FIND " << _reqid << " FROM " << _id;
        Request *request = g_timeout[_id]->Erase(_reqid);
        if (!request) {
            LOG(WARN) << "Job: unknown request id: " << _reqid;
            return true;
        }

        LOG(INFO) << "Handler: I'm (" << my_context << ") OnMessage("
                  << _channel << ", " << _length << ")";

        request->Done();
        delete request;
        return true;
    }