treat negative select timeout as zero