## CamelMsgPort CamelMsgPort |

## Synopsis

    struct              CamelMsg;
                        CamelMsgPort;
    CamelMsgPort *      camel_msgport_new                   (void);
    void                camel_msgport_destroy               (CamelMsgPort *msgport);
    gint                camel_msgport_fd                    (CamelMsgPort *msgport);
    void                camel_msgport_push                  (CamelMsgPort *msgport,
                                                             CamelMsg *msg);
    CamelMsg *          camel_msgport_pop                   (CamelMsgPort *msgport);
    CamelMsg *          camel_msgport_try_pop               (CamelMsgPort *msgport);
    CamelMsg *          camel_msgport_timed_pop             (CamelMsgPort *msgport,
                                                             GTimeVal *end_time);
    void                camel_msgport_reply                 (CamelMsg *msg);
    struct PRFileDesc * camel_msgport_prfd                  (CamelMsgPort *msgport);

## Description

## Details

### struct CamelMsg

    struct CamelMsg {
    	CamelDListNode ln;
    	CamelMsgPort *reply_port;
    	gint flags;
    };

Since 2.24

### CamelMsgPort

    typedef struct _CamelMsgPort CamelMsgPort;

Since 2.24

### camel_msgport_new ()

    CamelMsgPort *      camel_msgport_new                   (void);

Since 2.24

### camel_msgport_destroy ()

    void                camel_msgport_destroy               (CamelMsgPort *msgport);

Since 2.24

### camel_msgport_fd ()

    gint                camel_msgport_fd                    (CamelMsgPort *msgport);

Since 2.24

### camel_msgport_push ()

    void                camel_msgport_push                  (CamelMsgPort *msgport,
                                                             CamelMsg *msg);

Since 2.24

### camel_msgport_pop ()

    CamelMsg *          camel_msgport_pop                   (CamelMsgPort *msgport);

Since 2.24

### camel_msgport_try_pop ()

    CamelMsg *          camel_msgport_try_pop               (CamelMsgPort *msgport);

Since 2.24

### camel_msgport_timed_pop ()

    CamelMsg *          camel_msgport_timed_pop             (CamelMsgPort *msgport,
                                                             GTimeVal *end_time);

`msgport` : | a CamelMsgPort
`end_time` : | a GTimeVal

Since 2.30

### camel_msgport_reply ()

    void                camel_msgport_reply                 (CamelMsg *msg);

Since 2.24

### camel_msgport_prfd ()

    struct PRFileDesc * camel_msgport_prfd                  (CamelMsgPort *msgport);

Since 2.24