add AbstractQueuedSynchronizer