implement dining philosophers