Commit 7d33bcb7 by Torvald Riegel Committed by Torvald Riegel

libitm: Add xcalloc.

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

From-SVN: r184210
parent dd552284
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.
......
......@@ -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));
......
......@@ -71,6 +71,18 @@ xmalloc (size_t size, bool separate_cl)
}
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)
{
// TODO Use posix_memalign if separate_cl is true, or some other allocation
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment