Queue termination

What should occur if shutdown() is called multiple times (potentially with different values for immediate)? Looking through the PR implementation currently, it seems like it could be possible for a second call to unset the immediate state while threads are waiting, causing some threads to raise the shutdown exception while others continue to get() items until the queues are empty. Perhaps shutdown(immediate=False) should be a no-op if the state is shutdown-immediate already?