data_access: try avoiding race condition with semaphores