/*
* call-seq:
* mq.attr => mq_attr
*
* Returns a POSIX_MQ::Attr struct containing the attributes
* of the message queue. See the mq_getattr(3) manpage for
* more details.
*/
static VALUE getattr(VALUE self)
{
struct posix_mq *mq = get(self, 1);
if (mq_getattr(mq->des, &mq->attr) < 0)
rb_sys_fail("mq_getattr");
return rb_funcall(cAttr, id_new, 4,
LONG2NUM(mq->attr.mq_flags),
LONG2NUM(mq->attr.mq_maxmsg),
LONG2NUM(mq->attr.mq_msgsize),
LONG2NUM(mq->attr.mq_curmsgs));
}