From: Tim Hollingsworth Date: 2006-11-23T20:38:30+09:00 Subject: Multi-threaded C++, new, and xmalloc Hello I have a C++ application with an embedded ruby interpreter. I have overridden the new() operator globally: void* operator new (size_t size) { void *p=xmalloc(size); if (p==0) // did malloc succeed? throw std::bad_alloc(); // ANSI/ISO compliant behavior return p; } void operator delete (void *p) { xfree(p); } This keeps the GC informed about allocations. It has been working wonderfully for months but just recently the program has been crashing badly. I've narrowed it down to allocations on some worker threads on the C++ side. While they do not interact with ruby directly, any allocations will obviously be routed through xmalloc, and hence might cause memory corruption. Does anybody have a clue how to fix this? cheers Tim -- Posted via http://www.ruby-forum.com/.