method
socketpair
v1_9_1_378 -
Show latest stable
- Class:
Socket
socketpair(p1, p2, p3)public
No documentation available.
static VALUE
sock_s_socketpair(VALUE klass, VALUE domain, VALUE type, VALUE protocol)
{
#if defined HAVE_SOCKETPAIR
int d, t, p, sp[2];
int ret;
setup_domain_and_type(domain, &d, type, &t);
p = NUM2INT(protocol);
ret = socketpair(d, t, p, sp);
if (ret < 0 && (errno == EMFILE || errno == ENFILE)) {
rb_gc();
ret = socketpair(d, t, p, sp);
}
if (ret < 0) {
rb_sys_fail("socketpair(2)");
}
return rb_assoc_new(init_sock(rb_obj_alloc(klass), sp[0]),
init_sock(rb_obj_alloc(klass), sp[1]));
#else
rb_notimplement();
#endif
}