libitm: Add xcalloc.

libitm/
	* util.cc (GTM::xcalloc): New.
	* common.h (GTM::xcalloc): Declare.

From-SVN: r184210
This commit is contained in:
Torvald Riegel 2012-02-14 13:13:56 +00:00 committed by Torvald Riegel
parent dd552284fd
commit 7d33bcb738
3 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2012-02-14 Torvald Riegel <triegel@redhat.com>
* util.cc (GTM::xcalloc): New.
* common.h (GTM::xcalloc): Declare.
2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/target.h (cpu_relax): Read from CC register.

View File

@ -54,6 +54,8 @@ namespace GTM HIDDEN {
// cache lines that are not shared with any object used by another thread.
extern void * xmalloc (size_t s, bool separate_cl = false)
__attribute__((malloc, nothrow));
extern void * xcalloc (size_t s, bool separate_cl = false)
__attribute__((malloc, nothrow));
extern void * xrealloc (void *p, size_t s, bool separate_cl = false)
__attribute__((malloc, nothrow));

View File

@ -70,6 +70,18 @@ xmalloc (size_t size, bool separate_cl)
return r;
}
void *
xcalloc (size_t size, bool separate_cl)
{
// TODO Use posix_memalign if separate_cl is true, or some other allocation
// method that will avoid sharing cache lines with data used by other
// threads.
void *r = calloc (1, size);
if (r == 0)
GTM_fatal ("Out of memory allocating %lu bytes", (unsigned long) size);
return r;
}
void *
xrealloc (void *old, size_t size, bool separate_cl)
{