changed item_global_lock to using spinlock instead of mutex