Boost logo

Boost Users :

Subject: [Boost-users] Threads - Access in invalid memory Boost 1.36.0 BCB 5.8.3
From: Stephen Kierzewski (sjkninester_at_[hidden])
Date: 2008-11-22 10:03:38


Hello,

I have a simple OpenGL program that is using Boost Threads and I had it
working fine under Boost 1.34. I have switched to 1.36 for some of the
newer mutex locking functionality and everything works fine, but.. I
keep getting an invalid memory access error. My program will run fine if
i skip past the offending call.

Wondering if anyone has any ideas?

The offending call happens when the rendering thread is created. The
call stack is as follows:

  Access in invalid memory in process: solarsystemT.exe(4056) -
:\development\boost_1_36_0\boost/thread/win32/once.hpp#125
  Attempt to access 4 byte(s) at 0x00417084.
    0x00411056 - E:\development\boost_1_36_0\boost/thread/win32/once.hpp#125
    0x0041137B -
E:\development\boost_1_36_0\libs\thread\src\win32\thread.cpp#44
    0x00411A61 -
E:\development\boost_1_36_0\libs\thread\src\win32\thread.cpp#151

The memory that boost::call_once is accessing is
current_thread_tls_init_flag
created earlier by boost::once_flag
current_thread_tls_init_flag=BOOST_ONCE_INIT;

I can see that this flag was created and initialized to zero.

Thank you for any insight.
Stephen Kierzewski


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net