Mercurial > hg > freeDiameter
diff libfdcore/messages.c @ 1014:908ffbb81f60
Added a second callback in fd_msg_send_timeout to handle more easily the timeout situation
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Fri, 29 Mar 2013 17:30:59 +0800 |
parents | 5053f1abcf5d |
children | 74bba7975864 |
line wrap: on
line diff
--- a/libfdcore/messages.c Fri Mar 29 17:11:45 2013 +0800 +++ b/libfdcore/messages.c Fri Mar 29 17:30:59 2013 +0800 @@ -320,7 +320,7 @@ CHECK_PARAMS( pmsg ); /* Save the callback in the message */ - CHECK_FCT( fd_msg_anscb_associate( *pmsg, anscb, data, NULL /* we should maybe use a safeguard here like 1 hour or so? */ ) ); + CHECK_FCT( fd_msg_anscb_associate( *pmsg, anscb, data, NULL, NULL /* we should maybe use a safeguard here like 1 hour or so? */ ) ); /* Post the message in the outgoing queue */ CHECK_FCT( fd_fifo_post(fd_g_outgoing, pmsg) ); @@ -329,13 +329,13 @@ } /* The variation of the same function with a timeout callback */ -int fd_msg_send_timeout ( struct msg ** pmsg, void (*anscb)(void *, struct msg **), void * data, const struct timespec *timeout ) +int fd_msg_send_timeout ( struct msg ** pmsg, void (*anscb)(void *, struct msg **), void * data, void (*expirecb)(void *, DiamId_t, size_t, struct msg **), const struct timespec *timeout ) { - TRACE_ENTRY("%p %p %p", pmsg, anscb, data, timeout); - CHECK_PARAMS( pmsg && anscb && timeout ); + TRACE_ENTRY("%p %p %p %p %p", pmsg, anscb, data, expirecb, timeout); + CHECK_PARAMS( pmsg && expirecb && timeout ); /* Save the callback in the message, with the timeout */ - CHECK_FCT( fd_msg_anscb_associate( *pmsg, anscb, data, timeout ) ); + CHECK_FCT( fd_msg_anscb_associate( *pmsg, anscb, data, expirecb, timeout ) ); /* Post the message in the outgoing queue */ CHECK_FCT( fd_fifo_post(fd_g_outgoing, pmsg) );