 if there is an existing service object with the given key.   execution_context::service* service = first_service_;   while (service)   {     if (keys_match(service->key_, key))       return service;     service = service->next_;   }    // 