correct locking primitive?