SFML community forums

Help => Window => Topic started by: marek3571 on June 17, 2011, 07:56:03 am

Title: Strange problem with sf::Window and multiple threads
Post by: marek3571 on June 17, 2011, 07:56:03 am
Hi,
I keep getting a runtime error when trying to create a window with SFML 2.0 when the class itself was constructed on a different thread.

Code: [Select]

class testThread : public MyThread    //not derived from sf::Thread
{
public:
testThread() : foo(), MyThread() {  }    //thread starts upon construction
void run()
{
foo.Create(sf::VideoMode(800, 600), "Test Window");
foo.Close();
}
private:
sf::Window foo;
};


When I try to run this, it crashes in sf::Window::Close() on the line
Code: [Select]
delete myContext; with the error  Unhandled exception at 0x000007fef35cf78f (sfml-window-d-2.dll) in SFML test.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff."

However, I found that if I added
Code: [Select]
sf::Window bar; right before foo.Create(), the whole thing worked. What am I doing wrong???
Title: Strange problem with sf::Window and multiple threads
Post by: marek3571 on June 17, 2011, 08:02:39 am
Well, i just looked a little closer and discovered that the problem is actually the way i handled my threads. The constructor was still running when foo.Create() was called.