Changeset 4397
- Timestamp:
- Jun 24, 2005, 5:32:42 PM (21 years ago)
- Location:
- trunk/psLib
- Files:
-
- 6 edited
-
src/sys/psMemory.c (modified) (8 diffs)
-
src/sys/psMemory.h (modified) (9 diffs)
-
src/sysUtils/psMemory.c (modified) (8 diffs)
-
src/sysUtils/psMemory.h (modified) (9 diffs)
-
src/sysUtils/sysUtils.i (modified) (1 diff)
-
test/sysUtils/tst_psMemory.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/sys/psMemory.c
r4392 r4397 8 8 * @author Robert Lupton, Princeton University 9 9 * 10 * @version $Revision: 1.5 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2005-06-25 0 2:02:05$10 * @version $Revision: 1.56 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-06-25 03:32:42 $ 12 12 * 13 13 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 55 55 * Unique ID for allocated blocks 56 56 */ 57 static psMem oryId memid = 0;57 static psMemId memid = 0; 58 58 59 59 /** … … 88 88 * isn't resignalled) 89 89 */ 90 static psMem oryId memAllocateCallbackDefault(const psMemBlock* ptr)91 { 92 static psMem oryId incr = 0; // "p_psMemAllocateID += incr"90 static psMemId memAllocateCallbackDefault(const psMemBlock* ptr) 91 { 92 static psMemId incr = 0; // "p_psMemAllocateID += incr" 93 93 94 94 return incr; 95 95 } 96 96 97 static psMem oryId memFreeCallbackDefault(const psMemBlock* ptr)98 { 99 static psMem oryId incr = 0; // "p_psMemFreeID += incr"97 static psMemId memFreeCallbackDefault(const psMemBlock* ptr) 98 { 99 static psMemId incr = 0; // "p_psMemFreeID += incr" 100 100 101 101 return incr; … … 194 194 * Call the callbacks when these IDs are allocated/freed 195 195 */ 196 psMem oryId p_psMemAllocateID = 0; // notify user this block is allocated197 psMem oryId p_psMemFreeID = 0; // notify user this block is freed198 199 psMem oryId psMemAllocateCallbackSetID(psMemoryId id)200 { 201 psMem oryId old = p_psMemAllocateID;196 psMemId p_psMemAllocateID = 0; // notify user this block is allocated 197 psMemId p_psMemFreeID = 0; // notify user this block is freed 198 199 psMemId psMemAllocateCallbackSetID(psMemId id) 200 { 201 psMemId old = p_psMemAllocateID; 202 202 203 203 p_psMemAllocateID = id; … … 206 206 } 207 207 208 psMem oryId psMemFreeCallbackSetID(psMemoryId id)209 { 210 psMem oryId old = p_psMemFreeID;208 psMemId psMemFreeCallbackSetID(psMemId id) 209 { 210 psMemId old = p_psMemFreeID; 211 211 212 212 p_psMemFreeID = id; … … 244 244 * Return memory ID counter for next block to be allocated 245 245 */ 246 psMem oryId psMemGetId(void)247 { 248 psMem oryId id;246 psMemId psMemGetId(void) 247 { 248 psMemId id; 249 249 250 250 pthread_mutex_lock(&memIdMutex); … … 338 338 // increment the memory id safely. 339 339 pthread_mutex_lock(&memBlockListMutex); 340 *(psMem oryId* ) & ptr->id = ++memid;340 *(psMemId* ) & ptr->id = ++memid; 341 341 pthread_mutex_unlock(&memBlockListMutex); 342 342 … … 448 448 * Check for memory leaks. 449 449 */ 450 psS32 psMemCheckLeaks(psMem oryId id0, psMemBlock* ** arr, FILE * fd, psBool persistence)450 psS32 psMemCheckLeaks(psMemId id0, psMemBlock* ** arr, FILE * fd, psBool persistence) 451 451 { 452 452 psS32 nleak = 0; -
trunk/psLib/src/sys/psMemory.h
r4392 r4397 12 12 * @ingroup MemoryManagement 13 13 * 14 * @version $Revision: 1.4 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-06-25 0 2:02:05$14 * @version $Revision: 1.43 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-06-25 03:32:42 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 49 49 50 50 /// typedef for memory identification numbers. Guaranteed to be some variety of integer. 51 typedef psU64 psMem oryId;51 typedef psU64 psMemId; 52 52 53 53 /// typedef for a memory block's reference count. Guaranteed to be some variety of integer. … … 69 69 psFreeFunc freeFcn; ///< deallocator. If NULL, use generic deallocation. 70 70 size_t userMemorySize; ///< the size of the user-portion of the memory block 71 const psMem oryId id; ///< a unique ID for this allocation71 const psMemId id; ///< a unique ID for this allocation 72 72 const char *file; ///< set from __FILE__ in e.g. p_psAlloc 73 73 const psS32 lineno; ///< set from __LINE__ in e.g. p_psAlloc … … 84 84 * @ingroup memCallback 85 85 */ 86 typedef psMem oryId(*psMemAllocateCallback) (86 typedef psMemId(*psMemAllocateCallback) ( 87 87 const psMemBlock* ptr ///< the psMemBlock just allocated 88 88 ); … … 93 93 * @ingroup memCallback 94 94 */ 95 typedef psMem oryId(*psMemFreeCallback) (95 typedef psMemId(*psMemFreeCallback) ( 96 96 const psMemBlock* ptr ///< the psMemBlock being freed 97 97 ); … … 259 259 */ 260 260 psS32 psMemCheckLeaks( 261 psMem oryId id0, ///< don't list blocks with id < id0261 psMemId id0, ///< don't list blocks with id < id0 262 262 psMemBlock* ** arr, ///< pointer to array of pointers to leaked blocks, or NULL 263 263 FILE * fd, ///< print list of leaks to fd (or NULL) … … 394 394 * @ingroup memCallback 395 395 * 396 * @return psMem oryId the next memory ID to be used397 */ 398 psMem oryId psMemGetId(void);396 * @return psMemId the next memory ID to be used 397 */ 398 psMemId psMemGetId(void); 399 399 400 400 /** set p_psMemAllocateID to specific id … … 407 407 * @ingroup memCallback 408 408 * 409 * @return psMem oryId409 * @return psMemId 410 410 * 411 411 * @see psMemAllocateCallbackSet 412 412 */ 413 psMem oryId psMemAllocateCallbackSetID(414 psMem oryId id ///< ID to set413 psMemId psMemAllocateCallbackSetID( 414 psMemId id ///< ID to set 415 415 ); 416 416 … … 424 424 * @ingroup memCallback 425 425 * 426 * @return psMem oryId the old p_psMemFreeID426 * @return psMemId the old p_psMemFreeID 427 427 * 428 428 * @see psMemFreeCallbackSet 429 429 */ 430 psMem oryId psMemFreeCallbackSetID(431 psMem oryId id ///< ID to set430 psMemId psMemFreeCallbackSetID( 431 psMemId id ///< ID to set 432 432 ); 433 433 -
trunk/psLib/src/sysUtils/psMemory.c
r4392 r4397 8 8 * @author Robert Lupton, Princeton University 9 9 * 10 * @version $Revision: 1.5 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2005-06-25 0 2:02:05$10 * @version $Revision: 1.56 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-06-25 03:32:42 $ 12 12 * 13 13 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 55 55 * Unique ID for allocated blocks 56 56 */ 57 static psMem oryId memid = 0;57 static psMemId memid = 0; 58 58 59 59 /** … … 88 88 * isn't resignalled) 89 89 */ 90 static psMem oryId memAllocateCallbackDefault(const psMemBlock* ptr)91 { 92 static psMem oryId incr = 0; // "p_psMemAllocateID += incr"90 static psMemId memAllocateCallbackDefault(const psMemBlock* ptr) 91 { 92 static psMemId incr = 0; // "p_psMemAllocateID += incr" 93 93 94 94 return incr; 95 95 } 96 96 97 static psMem oryId memFreeCallbackDefault(const psMemBlock* ptr)98 { 99 static psMem oryId incr = 0; // "p_psMemFreeID += incr"97 static psMemId memFreeCallbackDefault(const psMemBlock* ptr) 98 { 99 static psMemId incr = 0; // "p_psMemFreeID += incr" 100 100 101 101 return incr; … … 194 194 * Call the callbacks when these IDs are allocated/freed 195 195 */ 196 psMem oryId p_psMemAllocateID = 0; // notify user this block is allocated197 psMem oryId p_psMemFreeID = 0; // notify user this block is freed198 199 psMem oryId psMemAllocateCallbackSetID(psMemoryId id)200 { 201 psMem oryId old = p_psMemAllocateID;196 psMemId p_psMemAllocateID = 0; // notify user this block is allocated 197 psMemId p_psMemFreeID = 0; // notify user this block is freed 198 199 psMemId psMemAllocateCallbackSetID(psMemId id) 200 { 201 psMemId old = p_psMemAllocateID; 202 202 203 203 p_psMemAllocateID = id; … … 206 206 } 207 207 208 psMem oryId psMemFreeCallbackSetID(psMemoryId id)209 { 210 psMem oryId old = p_psMemFreeID;208 psMemId psMemFreeCallbackSetID(psMemId id) 209 { 210 psMemId old = p_psMemFreeID; 211 211 212 212 p_psMemFreeID = id; … … 244 244 * Return memory ID counter for next block to be allocated 245 245 */ 246 psMem oryId psMemGetId(void)247 { 248 psMem oryId id;246 psMemId psMemGetId(void) 247 { 248 psMemId id; 249 249 250 250 pthread_mutex_lock(&memIdMutex); … … 338 338 // increment the memory id safely. 339 339 pthread_mutex_lock(&memBlockListMutex); 340 *(psMem oryId* ) & ptr->id = ++memid;340 *(psMemId* ) & ptr->id = ++memid; 341 341 pthread_mutex_unlock(&memBlockListMutex); 342 342 … … 448 448 * Check for memory leaks. 449 449 */ 450 psS32 psMemCheckLeaks(psMem oryId id0, psMemBlock* ** arr, FILE * fd, psBool persistence)450 psS32 psMemCheckLeaks(psMemId id0, psMemBlock* ** arr, FILE * fd, psBool persistence) 451 451 { 452 452 psS32 nleak = 0; -
trunk/psLib/src/sysUtils/psMemory.h
r4392 r4397 12 12 * @ingroup MemoryManagement 13 13 * 14 * @version $Revision: 1.4 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-06-25 0 2:02:05$14 * @version $Revision: 1.43 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-06-25 03:32:42 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 49 49 50 50 /// typedef for memory identification numbers. Guaranteed to be some variety of integer. 51 typedef psU64 psMem oryId;51 typedef psU64 psMemId; 52 52 53 53 /// typedef for a memory block's reference count. Guaranteed to be some variety of integer. … … 69 69 psFreeFunc freeFcn; ///< deallocator. If NULL, use generic deallocation. 70 70 size_t userMemorySize; ///< the size of the user-portion of the memory block 71 const psMem oryId id; ///< a unique ID for this allocation71 const psMemId id; ///< a unique ID for this allocation 72 72 const char *file; ///< set from __FILE__ in e.g. p_psAlloc 73 73 const psS32 lineno; ///< set from __LINE__ in e.g. p_psAlloc … … 84 84 * @ingroup memCallback 85 85 */ 86 typedef psMem oryId(*psMemAllocateCallback) (86 typedef psMemId(*psMemAllocateCallback) ( 87 87 const psMemBlock* ptr ///< the psMemBlock just allocated 88 88 ); … … 93 93 * @ingroup memCallback 94 94 */ 95 typedef psMem oryId(*psMemFreeCallback) (95 typedef psMemId(*psMemFreeCallback) ( 96 96 const psMemBlock* ptr ///< the psMemBlock being freed 97 97 ); … … 259 259 */ 260 260 psS32 psMemCheckLeaks( 261 psMem oryId id0, ///< don't list blocks with id < id0261 psMemId id0, ///< don't list blocks with id < id0 262 262 psMemBlock* ** arr, ///< pointer to array of pointers to leaked blocks, or NULL 263 263 FILE * fd, ///< print list of leaks to fd (or NULL) … … 394 394 * @ingroup memCallback 395 395 * 396 * @return psMem oryId the next memory ID to be used397 */ 398 psMem oryId psMemGetId(void);396 * @return psMemId the next memory ID to be used 397 */ 398 psMemId psMemGetId(void); 399 399 400 400 /** set p_psMemAllocateID to specific id … … 407 407 * @ingroup memCallback 408 408 * 409 * @return psMem oryId409 * @return psMemId 410 410 * 411 411 * @see psMemAllocateCallbackSet 412 412 */ 413 psMem oryId psMemAllocateCallbackSetID(414 psMem oryId id ///< ID to set413 psMemId psMemAllocateCallbackSetID( 414 psMemId id ///< ID to set 415 415 ); 416 416 … … 424 424 * @ingroup memCallback 425 425 * 426 * @return psMem oryId the old p_psMemFreeID426 * @return psMemId the old p_psMemFreeID 427 427 * 428 428 * @see psMemFreeCallbackSet 429 429 */ 430 psMem oryId psMemFreeCallbackSetID(431 psMem oryId id ///< ID to set430 psMemId psMemFreeCallbackSetID( 431 psMemId id ///< ID to set 432 432 ); 433 433 -
trunk/psLib/src/sysUtils/sysUtils.i
r3165 r4397 40 40 } 41 41 42 psS32 psMemCheckLeaksToStderr(psMem oryId id0, psMemBlock*** arr, psBool persistence) {42 psS32 psMemCheckLeaksToStderr(psMemId id0, psMemBlock*** arr, psBool persistence) { 43 43 return psMemCheckLeaks(id0, arr, stderr, persistence); 44 44 } 45 psS32 psMemCheckLeaksToStdout(psMem oryId id0, psMemBlock*** arr, psBool persistence) {45 psS32 psMemCheckLeaksToStdout(psMemId id0, psMemBlock*** arr, psBool persistence) { 46 46 return psMemCheckLeaks(id0, arr, stdout, persistence); 47 47 } -
trunk/psLib/test/sysUtils/tst_psMemory.c
r4308 r4397 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1.3 3$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-06- 17 23:44:22 $8 * @version $Revision: 1.34 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-06-25 03:32:42 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 30 30 static psS32 TPrealloc( void ); 31 31 static psS32 TPallocCallback( void ); 32 static psMem oryId memAllocateCallback( const psMemBlock *ptr );33 static psMem oryId memFreeCallback( const psMemBlock *ptr );32 static psMemId memAllocateCallback( const psMemBlock *ptr ); 33 static psMemId memFreeCallback( const psMemBlock *ptr ); 34 34 static psS32 TPcheckLeaks( void ); 35 35 static psS32 TPmemCorruption( void ); … … 497 497 } 498 498 499 psMem oryId memAllocateCallback( const psMemBlock *ptr )499 psMemId memAllocateCallback( const psMemBlock *ptr ) 500 500 { 501 501 psLogMsg( __func__, PS_LOG_INFO, "block %lld was (re)allocated", ptr->id ); … … 504 504 } 505 505 506 psMem oryId memFreeCallback( const psMemBlock *ptr )506 psMemId memFreeCallback( const psMemBlock *ptr ) 507 507 { 508 508 psLogMsg( __func__, PS_LOG_INFO, "block %lld was freed", ptr->id );
Note:
See TracChangeset
for help on using the changeset viewer.
