use ppoll when available for waiting to get a more accurate timer