N3189 Observers for the three handler functions

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120712 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant
2010-12-02 16:45:21 +00:00
parent 7de47902d0
commit a445151f4a
8 changed files with 120 additions and 9 deletions

View File

@@ -130,9 +130,13 @@ const nothrow_t nothrow = {};
new_handler
set_new_handler(new_handler handler) throw()
{
new_handler r = __new_handler;
__new_handler = handler;
return r;
return __sync_lock_test_and_set(&__new_handler, handler);
}
new_handler
get_new_handler() throw()
{
return __sync_fetch_and_add(&__new_handler, (new_handler)0);
}
bad_alloc::bad_alloc() throw()