Go to file
Greg Clayton 7fdf9ef15d Added a new Host class: ReadWriteLock
This abstracts read/write locks on the current host system. It is currently backed by pthread_rwlock_t objects so it should work on all unix systems.

We also need a way to control multi-threaded access to the process through the public API when it is running. For example it isn't a good idea to try and get stack frames while the process is running. To implement this, the lldb_private::Process class now contains a ReadWriteLock member variable named m_run_lock which is used to control the public process state. The public process state represents the state of the process as the client knows it. The private is used to control the actual current process state. So the public state of the process can be stopped, yet the private state can be running when evaluating an expression for example. 

Adding the read/write lock where readers are clients that want the process to stay stopped, and writers are clients that run the process, allows us to accurately control multi-threaded access to the process.

Switched the SBThread and SBFrame over to us shared pointers to the ExecutionContextRef class instead of making their own class to track this. This fixed an issue with assigning on SBFrame to another and will also centralize the code that tracks weak references to execution context objects into one location.

llvm-svn: 154099
2012-04-05 16:12:35 +00:00
clang Handle symbolicating a reference in an initializer expression that we don't understand. 2012-04-05 05:56:31 +00:00
compiler-rt [asan] make __asan::Deallocate immune to racy double-free (issue #57) 2012-04-05 15:55:09 +00:00
debuginfo-tests Revert previous patch as the corresponding clang patch was reverted. 2012-01-26 07:01:33 +00:00
libclc Switch to BSD/MIT dual license. 2012-02-22 04:47:39 +00:00
libcxx Fix the remaining atomic tests, all of which were wrong for the case where a 2012-04-05 13:48:16 +00:00
libcxxabi I would really like to write the handlers in terms of C++11 atomics. This would give us the best performance, portablity, and safety tradeoff. Unfortunately I can not yet do that. So I've put the desired code in comments, and reverted the handler getters to the slower but safer legacy atomic intrinsics. 2012-03-19 16:56:51 +00:00
lld Remove trailing whitespace. 2012-04-03 18:40:27 +00:00
lldb Added a new Host class: ReadWriteLock 2012-04-05 16:12:35 +00:00
llvm BBVectorize: Add the const modifier to the VectorizeConfig because we won't 2012-04-05 16:07:49 +00:00
polly CodeGen: Remove unused declaration 2012-04-03 12:37:14 +00:00