cancelBooking is now synchronized to avoid race conditions