Changeset 7138
- Timestamp:
- Nov 23, 2008, 5:05:44 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/fdlimit.c
r7129 r7138 23 23 *****************************************************************************/ 24 24 25 #ifndef WIN32 26 #define HAVE_GETRLIMIT 27 #endif 28 25 29 #include <assert.h> 26 30 #include <errno.h> … … 39 43 #include <sys/types.h> 40 44 #include <sys/stat.h> 45 #ifdef HAVE_GETRLIMIT 46 #include <sys/time.h> /* getrlimit */ 47 #include <sys/resource.h> /* getrlimit */ 48 #endif 41 49 #include <unistd.h> 42 50 #include <fcntl.h> /* O_LARGEFILE */ … … 532 540 gFd = tr_new0( struct tr_fd_s, 1 ); 533 541 gFd->lock = tr_lockNew( ); 542 543 #ifdef HAVE_GETRLIMIT 544 { 545 struct rlimit rlim; 546 getrlimit( RLIMIT_NOFILE, &rlim ); 547 rlim.rlim_cur = MIN( rlim.rlim_max, 548 (rlim_t)( globalPeerLimit + NOFILE_BUFFER ) ); 549 setrlimit( RLIMIT_NOFILE, &rlim ); 550 gFd->socketMax = rlim.rlim_cur - NOFILE_BUFFER; 551 tr_dbg( "setrlimit( RLIMIT_NOFILE, %d )", (int)rlim.rlim_cur ); 552 } 553 #else 534 554 gFd->socketMax = globalPeerLimit; 555 #endif 535 556 tr_dbg( "%d usable file descriptors", globalPeerLimit ); 536 557
Note: See TracChangeset
for help on using the changeset viewer.