A system for supporting work sharing muxing in a cluster, comprising: one or more microprocessors; a plurality of file descriptor caches (501a-c) that each contains one or more read-ready file descriptors; a plurality of selectors (502a-c), wherein each said selector is a poll device and is exposed by a selector interface, wherein each said selector contains a queue of read-ready file descriptors; a plurality of worker threads (505d-e), running on the one or more microprocessors, that use the selectors to poll the plurality of file descriptor caches, and that operate to write the read-ready file descriptors polled by each selector from one or more of the file descriptor caches to the queue of said selector; and a shared queue, wherein each said selector is emptied into the shared queue, and wherein the shared queue is operable to contain both read-ready file descriptors and selectors; wherein the plurality of worker threads (505a-e), running on the one or more microprocessors, operate to take work from said shared queue and to determine whether an entry obtained from the shared queue is a selector or a read-ready file descriptor, wherein if the entry is a selector, the worker threads are operable to push the content of the selector so that the selector queue is emptied into the shared queue, and wherein each worker thread that returns from a selector is operable to retain one read-ready file descriptor; and wherein if the entry is a read-ready file descriptor, the worker threads are operable to obtain said read-ready file descriptor from the queue and prepare requests which are added to multiple queues of a request manager that is operable to handle one or more requests from different servers in the cluster; and wherein a thread that makes a function call to a selector to poll a file descriptor cache is blocked when it is waiting for a scan on the file descriptor cache to complete. one or more microprocessors; a plurality of file descriptor caches (501a-c) that each contains one or more read-ready file descriptors; a plurality of selectors (502a-c), wherein each said selector is a poll device and is exposed by a selector interface, wherein each said selector contains a queue of read-ready file descriptors; a plurality of worker threads (505d-e), running on the one or more microprocessors, that use the selectors to poll the plurality of file descriptor caches, and that operate to write the read-ready file descriptors polled by each selector from one or more of the file descriptor caches to the queue of said selector; and a shared queue, wherein each said selector is emptied into the shared queue, and wherein the shared queue is operable to contain both read-ready file descriptors and selectors; wherein the plurality of worker threads (505a-e), running on the one or more microprocessors, operate to take work from said shared queue and to determine whether an entry obtained from the shared queue is a selector or a read-ready file descriptor, wherein if the entry is a selector, the worker threads are operable to push the content of the selector so that the selector queue is emptied into the shared queue, and wherein each worker thread that returns from a selector is operable to retain one read-ready file descriptor; and wherein if the entry is a read-ready file descriptor, the worker threads are operable to obtain said read-ready file descriptor from the queue and prepare requests which are added to multiple queues of a request manager that is operable to handle one or more requests from different servers in the cluster; and wherein a thread that makes a function call to a selector to poll a file descriptor cache is blocked when it is waiting for a scan on the file descriptor cache to complete.