Commit 01596d74 authored by Pekka Pessi's avatar Pekka Pessi

Added su_msg_remove_refs(). Accept NULL argument to su_msg_is_non_null().

darcs-hash:20051007072944-65a35-d1b405315ec213221e00cb09b3e391a416876eaf.gz
parent ee4fa448
......@@ -1344,8 +1344,7 @@ int su_msg_size(su_msg_cr rmsg)
/** Get sending task.
*
* The function @c su_msg_from returns the task handle belonging to the
* sender of the message.
* Returns the task handle belonging to the sender of the message.
*
* If the message handle contains NULL the function @c su_msg_from
* returns NULL.
......@@ -1376,6 +1375,18 @@ _su_task_r su_msg_to(su_msg_r const msg)
return msg[0] ? msg[0]->sum_to : NULL;
}
/** Remove references to 'from' and 'to' tasks from a message.
*
* @param msg message handle
*/
void su_msg_remove_refs(su_msg_r const msg)
{
if (msg[0]) {
su_task_deinit(msg[0]->sum_to);
su_task_deinit(msg[0]->sum_from);
}
}
/**Send a message.
*
* The function @c su_msg_send() sends the message. The message is added to
......
......@@ -404,6 +404,7 @@ int su_msg_reply(su_msg_r reply, su_msg_r const msg,
su_msg_f wakeup, int size);
void su_msg_destroy(su_msg_r msg);
void su_msg_save(su_msg_r msg, su_msg_r msg0);
void su_msg_remove_refs(su_msg_r const msg);
su_msg_arg_t *su_msg_data(su_msg_cr msg);
int su_msg_size(su_msg_cr msg);
_su_task_r su_msg_from(su_msg_cr const msg);
......@@ -415,10 +416,10 @@ int su_msg_send(su_msg_r msg);
static SU_INLINE
int su_msg_is_non_null(su_msg_cr msg)
{
return *msg != NULL;
return msg && *msg != NULL;
}
#else
#define su_msg_is_non_null(msg) ((*msg) != NULL)
#define su_msg_is_non_null(msg) ((msg) && (*(msg)) != NULL)
#endif
/* Clones */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment