mutual exclusive reads/write