Fix socket creation above sistem limits for all 'other' OS not covered by eventfd, windows or vms; enhanced test to create sockets up to a bigger limit to really test hitting the OS limit

This commit is contained in:
Bruno D. Rodrigues 2013-11-10 10:19:19 +00:00
parent 2b989ded67
commit 750426037d
2 changed files with 3 additions and 2 deletions

View File

@ -474,7 +474,7 @@ int zmq::signaler_t::make_fdpair (fd_t *r_, fd_t *w_)
int rc = socketpair (AF_UNIX, SOCK_STREAM, 0, sv); int rc = socketpair (AF_UNIX, SOCK_STREAM, 0, sv);
if (rc == -1) { if (rc == -1) {
errno_assert (errno == ENFILE || errno == EMFILE); errno_assert (errno == ENFILE || errno == EMFILE);
sv [0] = sv [1] = -1; *w_ = *r_ = -1;
return -1; return -1;
} }
else { else {

View File

@ -22,13 +22,14 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
const int no_of_sockets = 5000; const int no_of_sockets = 2 * 65536;
int main(void) int main(void)
{ {
setup_test_environment(); setup_test_environment();
void *ctx = zmq_ctx_new(); void *ctx = zmq_ctx_new();
zmq_ctx_set(ctx, ZMQ_MAX_SOCKETS, no_of_sockets);
void *sockets[no_of_sockets]; void *sockets[no_of_sockets];
int sockets_created = 0; int sockets_created = 0;