Repository: kubernetes
Issue: Workqueue's add function `queue.Add()` doesn't tell whether an item was successfully added or not
Labels: sig/api-machinery,kind/feature,triage/accepted

### What happened?

While using `workqueue/queue.go` for one of my usecases, I naturally came across its `Add()` function. Essentially, if the queue is in a shutdown mode, it just does a plain `return` and there is no way for the caller to directly know if the item got added or not: 
https://github.com/kubernetes/kubernetes/blob/016b96ca3896d27b37c5b2d6e223fb3320a0fdec/staging/src/k8s.io/client-go/util/workqueue/queue.go#L120-L139

One way to do this would be to get the size of the queue(`queue.Len()`) before and after adding and seeing if the size remained same or increased but this might not be right way to go about it I feel (Please suggest some other better ways)

### What did you expect to happen?

Just like the `Get()` function has a return type which tells us whether the queue was getting shutdown at the time of calling `Get()`:
https://github.com/kubernetes/kubernetes/blob/016b96ca3896d27b37c5b2d6e223fb3320a0fdec/staging/src/k8s.io/client-go/util/workqueue/queue.go#L153-L175

Similarly, does it make sense to have a similar kind of thing for `Add()` as well instead of doing a plain `return`? Or correct me if the queue was designed not to return anything on `Add()` because of some tested cases?

### How can we reproduce it (as minimally and precisely as possible)?

Looking at the [code](https://github.com/kubernetes/kubernetes/blob/016b96ca3896d27b37c5b2d6e223fb3320a0fdec/staging/src/k8s.io/client-go/util/workqueue/queue.go#L120)

### Anything else we need to know?

_No response_

### Kubernetes version

<details>

```console
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.1", GitCommit:"86ec240af8cbd1b60bcc4c03c20da9b98005b92e", GitTreeState:"clean", BuildDate:"2021-12-16T11:41:01Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.5", GitCommit:"e0fccafd69541e3750d460ba0f9743b90336f24f", GitTreeState:"clean", BuildDate:"2020-05-01T02:11:15Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
```

</details>


### Cloud provider

<details>
GCP
</details>


### OS version

<details>

```console
# On Linux:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
$ uname -a
Linux instance-1 5.11.0-1029-gcp #33~20.04.3-Ubuntu SMP Tue Jan 18 12:03:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
```

</details>


### Install tools

<details>

</details>


### Container runtime (CRI) and and version (if applicable)

<details>

</details>


### Related plugins (CNI, CSI, ...) and versions (if applicable)

<details>

</details>