updateGL has to be called in the main thread. And of course you realize that by using threads you slow down your application, right?