enable client objects to cancel their own requests in select()