00001 00002 00003 00004 00005 00006 00007 00008 // No longer used as I no longer support IO Completion ports 00009 /* 00010 #ifdef __USE_IO_COMPLETION_PORTS 00011 #include "ExtendedOverlappedPool.h" 00012 00013 ExtendedOverlappedPool ExtendedOverlappedPool::I; 00014 00015 ExtendedOverlappedPool::ExtendedOverlappedPool() 00016 {} 00017 00018 ExtendedOverlappedPool::~ExtendedOverlappedPool() 00019 { 00020 // The caller better have returned all the packets! 00021 ExtendedOverlappedStruct * p; 00022 poolMutex.Lock(); 00023 00024 while ( pool.Size() ) 00025 { 00026 p = pool.Pop(); 00027 RakNet::OP_DELETE(p, __FILE__, __LINE__); 00028 } 00029 00030 poolMutex.Unlock(); 00031 } 00032 00033 ExtendedOverlappedStruct* ExtendedOverlappedPool::GetPointer( void ) 00034 { 00035 ExtendedOverlappedStruct * p = 0; 00036 poolMutex.Lock(); 00037 00038 if ( pool.Size() ) 00039 p = pool.Pop(); 00040 00041 poolMutex.Unlock(); 00042 00043 if ( p ) 00044 return p; 00045 00046 return new ExtendedOverlappedStruct; 00047 } 00048 00049 void ExtendedOverlappedPool::ReleasePointer( ExtendedOverlappedStruct *p ) 00050 { 00051 poolMutex.Lock(); 00052 pool.Push( p ); 00053 poolMutex.Unlock(); 00054 } 00055 00056 #endif 00057 00058 */