blockedqueue implementation