Changeset 7558
- Timestamp:
- Dec 31, 2008, 2:29:28 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/utils.c
r7549 r7558 1302 1302 static tr_list * _bufferList = NULL; 1303 1303 1304 static tr_lock * 1305 getBufferLock( void ) 1306 { 1307 static tr_lock * lock = NULL; 1308 if( lock == NULL ) 1309 lock = tr_lockNew( ); 1310 return lock; 1311 } 1312 1304 1313 struct evbuffer* 1305 1314 tr_getBuffer( void ) 1306 1315 { 1307 struct evbuffer * buf = tr_list_pop_front( &_bufferList ); 1316 struct evbuffer * buf; 1317 tr_lock * l = getBufferLock( ); 1318 tr_lockLock( l ); 1319 1320 buf = tr_list_pop_front( &_bufferList ); 1308 1321 if( buf == NULL ) 1309 1322 buf = evbuffer_new( ); 1310 assert( !EVBUFFER_LENGTH( buf ) ); 1323 1324 tr_lockUnlock( l ); 1311 1325 return buf; 1312 1326 } … … 1315 1329 tr_releaseBuffer( struct evbuffer * buf ) 1316 1330 { 1331 tr_lock * l = getBufferLock( ); 1332 tr_lockLock( l ); 1333 1317 1334 evbuffer_drain( buf, EVBUFFER_LENGTH( buf ) ); 1335 assert( EVBUFFER_LENGTH( buf ) == 0 ); 1318 1336 tr_list_prepend( &_bufferList, buf ); 1319 } 1337 1338 tr_lockUnlock( l ); 1339 }
Note: See TracChangeset
for help on using the changeset viewer.