History log of /external/lldb/include/lldb/Host/Predicate.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
51d7a39dca300a7fa90a44a0fc5338048b49ac20 26-Oct-2012 Andrew Kaylor <andrew.kaylor@intel.com> This patch updates comments in the Predicate class to describe a subtle behavior that callers may need to be aware. It also adds documentation for one function which didn’t have any.

The subtle behavior is that the Predicate wait functions may not detect transitory changes in the predicate value. Consider the following scenario.

Thread A waits for a bit to be set in the predicate value.
Thread B sets the bit in the predicate value.
Before Thread A wakes up, Thread C clears the bit in the predicate value.
Thread A wakes, checks the value and goes back to waiting.

The mutex and condition variables protect access to the value, but they offer no guarantee that another thread will not acquire the mutex and change the value before a waiting thread is restarted after a change.

I believe that the current behavior is correct and reasonable. I just want to leave a marker to prevent possible problems in the future or to help anyone who might be unfortunate enough to encounter such a problem.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
8533e994d3076ef517e2cf7f3030bbc6a7273a9b 05-May-2012 Jim Ingham <jingham@apple.com> Missed a few uses of Mutex::GetMutex in template functions that don't seem to get instantiated on the Mac OS X build,
but were causing build failures on Linux.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
1b584ebc1de8b50fe375cffb5fb33ad13be10046 05-May-2012 Jim Ingham <jingham@apple.com> Don't expose the pthread_mutex_t underlying the Mutex & Mutex::Locker classes.
No one was using it and Locker(pthread_mutex_t *) immediately asserts for
pthread_mutex_t's that don't come from a Mutex anyway. Rather than try to make
that work, we should maintain the Mutex abstraction and not pass around the
platform implementation...

Make Mutex::Locker::Lock take a Mutex & or a Mutex *, and remove the constructor
taking a pthread_mutex_t *. You no longer need to call Mutex::GetMutex to pass
your mutex to a Locker (you can't in fact, since I made it private.)


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
22f44d5f0a70e43825abadcc8f475ea4b4353509 14-Mar-2012 Enrico Granata <egranata@apple.com> Committing a patch from Filipe Cabecinhas

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
91da7493de9a6d3ba2ae2bbaddbfff0f5d52a3cb 15-Jan-2011 Greg Clayton <gclayton@apple.com> Added the ability to wait for a predicate value, and set it to a new value all in a thread safe fashion.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
31ab22bfc055d8bd088ae4d8002ad281f929e60d 03-Dec-2010 Greg Clayton <gclayton@apple.com> Make sure timed_out is initialized to false just to be on the safe side.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@120813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
f8e98a6e4560c632a9c0373abee247e747097845 23-Jul-2010 Greg Clayton <gclayton@apple.com> Warnings cleanup patch from Jean-Daniel Dupas.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
54e7afa84d945f9137f9372ecde432f9e1a702fc 09-Jul-2010 Greg Clayton <gclayton@apple.com> Merged Eli Friedman's linux build changes where he added Makefile files that
enabled LLVM make style building and made this compile LLDB on Mac OS X. We
can now iterate on this to make the build work on both linux and macosx.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h
24943d2ee8bfaa7cf5893e4709143924157a5c1e 08-Jun-2010 Chris Lattner <sabre@nondot.org> Initial checkin of lldb code from internal Apple repo.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Host/Predicate.h