Navigation


Changeset 455:7250e91f0662 in freeDiameter


Ignore:
Timestamp:
Jul 29, 2010, 4:42:29 PM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Some additional flush enforcement to attempt to avoid some possible problems

Location:
freeDiameter
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • freeDiameter/cnxctx.c

    r454 r455  
    691691               
    692692                /* We have received a complete message, pass it to the daemon */
     693                fd_cpu_flush_cache();
    693694                CHECK_FCT_DO( fd_event_send( Target_Queue(conn), FDEVP_CNX_MSG_RECV, length, newmsg), /* continue or destroy everything? */);
    694695               
     
    741742                }
    742743               
     744                fd_cpu_flush_cache();
    743745                CHECK_FCT_DO( fd_event_send( Target_Queue(conn), event, bufsz, buf), goto fatal );
    744746               
     
    925927               
    926928                /* We have received a complete message, pass it to the daemon */
     929                fd_cpu_flush_cache();
    927930                CHECK_FCT_DO( ret = fd_event_send( Target_Queue(conn), FDEVP_CNX_MSG_RECV, length, newmsg),
    928931                        {
  • freeDiameter/p_out.c

    r454 r455  
    122122                CHECK_FCT_DO( do_send(&msg, 0, peer->p_cnxctx, &peer->p_hbh, &peer->p_sr),
    123123                        {
    124                                 fd_log_debug("An error occurred while sending this message, it is lost:\n");
    125                                 fd_msg_dump_walk(NONE, msg);
    126                                 fd_msg_free(msg);
     124                                if (msg) {
     125                                        fd_log_debug("An error occurred while sending this message, it was lost:\n");
     126                                        fd_msg_dump_walk(NONE, msg);
     127                                        fd_msg_free(msg);
     128                                }
    127129                        } );
    128130                       
     
    161163                CHECK_FCT_DO( do_send(msg, flags, cnx, hbh, peer ? &peer->p_sr : NULL),
    162164                        {
    163                                 fd_log_debug("An error occurred while sending this message, it is lost:\n");
    164                                 fd_msg_dump_walk(NONE, *msg);
    165                                 fd_msg_free(*msg);
    166                                 *msg = NULL;
     165                                if (msg) {
     166                                        fd_log_debug("An error occurred while sending this message, it was lost:\n");
     167                                        fd_msg_dump_walk(NONE, *msg);
     168                                        fd_msg_free(*msg);
     169                                        *msg = NULL;
     170                                }
    167171                        } );
    168172        }
  • freeDiameter/routing_dispatch.c

    r454 r455  
    998998        /* Mark the thread running */
    999999        *(enum thread_state *)arg = RUNNING;
     1000        fd_cpu_flush_cache();
    10001001       
    10011002        do {
     
    11241125
    11251126        /* Wait for a second for the thread to complete, by monitoring my_state */
     1127        fd_cpu_flush_cache();
    11261128        if (*st != TERMINATED) {
    11271129                TRACE_DEBUG(INFO, "Waiting for the %s thread to have a chance to terminate", th_name);
  • freeDiameter/sctps.c

    r454 r455  
    102102                        case FDEVP_CNX_EP_CHANGE:
    103103                                /* Send this event to the target queue */
     104                                fd_cpu_flush_cache();
    104105                                CHECK_FCT_DO( fd_event_send( Target_Queue(conn), event, bufsz, buf), goto fatal );
    105106                                break;
Note: See TracChangeset for help on using the changeset viewer.