local file = buffer.new("r", { read = function() os.sleep(5) return "a" end }) file:setvbuf("full", 1) -- set buffer size to 1 char file:setTimeout(1) -- set buffer timeout to 1 second -- this will time out before trying to read the 2nd char local a, b = file:read(1, 1) -- read 1 char, then read 1 char again