Flowdock
send(p1, p2, p3 = v3) public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
static VALUE
bsock_send(int argc, VALUE *argv, VALUE sock)
{
    struct send_arg arg;
    VALUE flags, to;
    rb_io_t *fptr;
    int n;
    rb_blocking_function_t *func;

    rb_secure(4);
    rb_scan_args(argc, argv, "21", &arg.mesg, &flags, &to);

    StringValue(arg.mesg);
    if (!NIL_P(to)) {
        StringValue(to);
        to = rb_str_new4(to);
        arg.to = (struct sockaddr *)RSTRING_PTR(to);
        arg.tolen = RSTRING_LEN(to);
        func = sendto_blocking;
    }
    else {
        func = send_blocking;
    }
    GetOpenFile(sock, fptr);
    arg.fd = fptr->fd;
    arg.flags = NUM2INT(flags);
    while (rb_thread_fd_writable(arg.fd),
           (n = (int)BLOCKING_REGION(func, &arg)) < 0) {
        if (rb_io_wait_writable(arg.fd)) {
            continue;
        }
        rb_sys_fail("send(2)");
    }
    return INT2FIX(n);
}
Register or log in to add new notes.