void CPUStat::GetTotalUsage(const CPUStat *st_previous, double *ucpu_usage, double *scpu_usage, double *thread_ucpu_usage, double *thread_scpu_usage) const { get_total_usage(process_stat, ucpu_usage, scpu_usage, thread_ucpu_usage, thread_scpu_usage); }
void* MemoryPoolStaticMalloc::_alloc(size_t p_bytes,const char *p_description) { ERR_FAIL_COND_V(p_bytes==0,0); MutexLock lock(mutex); #ifdef DEBUG_MEMORY_ENABLED void *mem=malloc(p_bytes+sizeof(RingPtr)); /// add for size and ringlist if (!mem) { printf("**ERROR: out of memory while allocating %i bytes by %s?\n",(int) p_bytes, p_description); printf("**ERROR: memory usage is %i\n", (int)get_total_usage()); }; ERR_FAIL_COND_V(!mem,0); //out of memory, or unreasonable request /* setup the ringlist element */ RingPtr *ringptr = (RingPtr*)mem; /* setup the ringlist element data (description and size ) */ ringptr->size = p_bytes; ringptr->descr=p_description; if (ringlist) { /* existing ringlist */ /* assign next */ ringptr->next = ringlist->next; ringlist->next = ringptr; /* assign prev */ ringptr->prev = ringlist; ringptr->next->prev = ringptr; } else { /* non existing ringlist */ ringptr->next=ringptr; ringptr->prev=ringptr; ringlist=ringptr; } total_mem+=p_bytes; /* update statistics */ if (total_mem > max_mem ) max_mem = total_mem; total_pointers++; if (total_pointers > max_pointers) max_pointers=total_pointers; return ringptr + 1; /* return memory after ringptr */ #else void *mem=malloc(p_bytes); ERR_FAIL_COND_V(!mem,0); //out of memory, or unreasonable request return mem; #endif }