Call QThread::exec() in your thread manager's run method, and reimplement QObject::event in this thread. The clients should not use signals/slots to talk to the thread manager, but they should post events in it's event queue. Then, the server should create a QPainterPath for the client that posted the request.

You can find more about this in the events documentation.

Regards.