set_data_destroy_function
3

# set_data_destroy_function

set function used to deallocate message data

    #include <cds/msg_queue.h>

    typedef void (*destroy_function_f)(void *);

      void set_data_destroy_function
      mq_message_t *msg
      destroy_function_f func

## Description

Set destroy function for message data. This function is called from `free_message` and is primarily used for deallocation of complex data structures or their content. It can be used on all types of messages (allocated using `create_message` or `create_message_ex` or initialized using `init_message_ex`).

### Usage with create_message_ex

    str_t *s;
    mq_message_t *msg = create_message_ex(sizeof(str_t));
    set_data_destroy_function((destroy_function_f)str_free_content);
    s = (str_t*)get_message_data(msg);
    str_dup_zt(s, "something happened");

### Usage with create_message

    str_t *s = cds_malloc(sizeof(str_t));
    mq_message_t *msg = create_message(s, sizeof(str_t));
    set_data_destroy_function((destroy_function_f)str_free);
    str_dup_zt(s, "something happened");

## See Also

, ,