lock
update IO