exit works with new wait queue structure, need to test wait