1. A computer-implemented method for processing a plurality of tasks across a group of threads, the method comprising: retrieving a first item from a first queue that stores processing tasks, wait events, and signaling events, the first queue being executed by a first thread; determining that the first item comprises a signaling event and executing the signaling event, wherein a wait event in a second queue is dependent on the signaling event, the second queue being executed by a second thread; in response to executing the signaling event, decrementing a dependency count associated with the wait event in the second queue; and removing the first item from the first queue, wherein the first thread and the second thread execute within a graphics processing subsystem and at least one thread of the graphics processing subsystem generates at least one of a wait event and a signaling event stored in the first queue, wherein the graphics processing subsystem is coupled to a central processing unit (CPU) and receives processing tasks from the CPU.