1. An apparatus comprising: a memory; and a processor, operatively coupled to the memory, the processor to: accept, by an acceptor thread, a first file transfer request from a client application; assign a first worker thread to transfer a requested file to the client application; release the acceptor thread in response to assigning the first worker thread to transfer the requested file to the client application; execute the first worker thread to transfer a first portion of the requested file; and in response to detecting that the first worker thread has transferred the first portion of the requested file, detect that the first worker thread is idle for an idle time and is awaiting a socket to continue execution; assign the first file transfer request to a poller thread shared by a plurality of file transfer requests in response to detecting that the first worker thread is idle; and release the first worker thread.