1. A computer-implemented method for managing a free list of available resources in a processor, the method comprising: identifying, by a processing system, one or more available resources for execution by the processor; determining, by the processing system, a maximum number of resources the processor can utilize in executing an instruction group; grouping, by the processing system, the one or more available resources into one or more resource groups, wherein each of the one or more resource groups has a size equal to the maximum number; receiving, by the processing system, a request from a decode logic for a number of resources for execution; dispatching, by the processing system, one of the one or more resource groups in response to the request by providing the number of resources for execution to the processor and sending one or more remaining resources in the one of the one or more resource groups to a recycle queue, wherein the one or more remaining resources are sent to the recycle queue without being utilized by the processor and wherein the recycle queue has a size equal to twice the maximum number of resources the processor can utilize in executing the instruction group; holding, by the processing system, one or more instruction groups in a held resource group queue, where the size of the held resource group queue is large enough to account for a latency between indicating a resource is available and resource allocation; receiving, by the processing system, a second request from the decode logic for a second number of resources for execution; based on determining that the recycle queue contains fewer resources than the maximum number, obtaining, by the processing system, additional available resources from both the recycle queue and the free list to create a new group of available resources; indicating, by the processing system, to a dispatch stall logic that the one or more resource groups are available for dispatch; incrementing, by the processing system, a resource group count for each of the one or more resource groups indicated; decrementing, by the processing system, the resource group count for each dispatching resource group; and stalling, by the processing system, dispatch based on a value of the resource group count.