Changeset 16382 in vbox
- Timestamp:
- Jan 29, 2009 5:16:22 PM (16 years ago)
- Location:
- trunk/src
- Files:
-
- 2 edited
-
VBox/Main/xpcom/server.cpp (modified) (1 diff)
-
libs/xpcom18a4/ipc/ipcd/daemon/src/ipcdUnix.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/xpcom/server.cpp
r16370 r16382 1169 1169 1170 1170 #ifndef RT_OS_OS2 1171 // Increase the file table size to 10240 or as high as possible. 1171 1172 struct rlimit lim; 1172 1173 if (getrlimit(RLIMIT_NOFILE, &lim) == 0) 1173 1174 { 1174 int k = 10240; 1175 for (; k >= 2048; k -= 1024) 1176 { 1177 if (lim.rlim_cur < k) 1178 { 1179 lim.rlim_cur = k; 1180 if (setrlimit(RLIMIT_NOFILE, &lim) == 0) 1181 break; 1182 } 1183 else 1184 break; 1185 } 1186 if (k <= 2048) 1187 printf("WARNING: failed to increase file descriptor limit.\n"); 1175 if ( lim.rlim_cur < 10240 1176 && lim.rlim_cur < lim.rlim_max) 1177 { 1178 lim.rlim_cur = RT_MIN(lim.rlim_max, 10240); 1179 if (setrlimit(RLIMIT_NOFILE, &lim) == -1) 1180 printf("WARNING: failed to increase file descriptor limit. (%d)\n", errno); 1181 } 1188 1182 } 1189 1183 else 1190 printf ("WARNING: failed to obtain per-process file-descriptor limit.\n");1184 printf("WARNING: failed to obtain per-process file-descriptor limit (%d).\n", errno); 1191 1185 #endif 1192 1186 -
trunk/src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcdUnix.cpp
r16371 r16382 47 47 #if defined(VBOX) && !defined(XP_OS2) 48 48 # include <sys/resource.h> 49 # include <errno.h> 49 50 #endif 50 51 … … 397 398 PRFileDesc *clientFD; 398 399 399 // @todo : We need to handle errors from accept() especially something like 400 // @todo : We need to handle errors from accept() especially something like 400 401 // EMFILE, which happens when we run out of file descriptors. 401 402 // and puts XPCOMIPCD in a poll/accept endless loop! … … 530 531 531 532 #if defined(VBOX) && !defined(XP_OS2) 532 struct rlimit lim; 533 if (getrlimit(RLIMIT_NOFILE, &lim) == 0) 534 { 535 int k = 10240; 536 for (; k >= 2048; k -= 1024) 533 // Increase the file table size to 10240 or as high as possible. 534 struct rlimit lim; 535 if (getrlimit(RLIMIT_NOFILE, &lim) == 0) 537 536 { 538 if (lim.rlim_cur < k) 537 if ( lim.rlim_cur < 10240 538 && lim.rlim_cur < lim.rlim_max) 539 539 { 540 lim.rlim_cur = k;541 if (setrlimit(RLIMIT_NOFILE, &lim) == 0)542 break;540 lim.rlim_cur = lim.rlim_max <= 10240 ? lim.rlim_max : 10240; 541 if (setrlimit(RLIMIT_NOFILE, &lim) == -1) 542 printf("WARNING: failed to increase file descriptor limit. (%d)\n", errno); 543 543 } 544 else545 break;546 544 } 547 if (k <= 2048) 548 printf("WARNING: failed to increase file descriptor limit.\n"); 549 } 550 else 551 printf ("WARNING: failed to obtain per-process file-descriptor limit.\n"); 545 else 546 printf("WARNING: failed to obtain per-process file-descriptor limit (%d).\n", errno); 552 547 #endif 553 548
Note:
See TracChangeset
for help on using the changeset viewer.

