Navigation


Changeset 10:c5c99c73c2bf in freeDiameter for libfreeDiameter/fifo.c


Ignore:
Timestamp:
Sep 25, 2009, 4:12:08 PM (15 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Added some extensions and functions in the daemon

File:
1 moved

Legend:

Unmodified
Added
Removed
  • libfreeDiameter/fifo.c

    r8 r10  
    100100}
    101101
     102/* Dump the content of a queue */
     103void fd_fifo_dump(int level, char * name, struct fifo * queue, void (*dump_item)(int level, void * item))
     104{
     105        TRACE_ENTRY("%i %p %p %p", level, name, queue, dump_item);
     106       
     107        if (!TRACE_BOOL(level))
     108                return;
     109       
     110        fd_log_debug("Dumping queue '%s' (%p):\n", name ?: "?", queue);
     111        if (!CHECK_FIFO( queue )) {
     112                fd_log_debug("  Queue invalid!\n");
     113                if (queue)
     114                        fd_log_debug("  (%x != %x)\n", queue->eyec, FIFO_EYEC);
     115                return;
     116        }
     117       
     118        CHECK_POSIX_DO(  pthread_mutex_lock( &queue->mtx ), /* continue */  );
     119        fd_log_debug("  %d elements in queue\n", queue->count);
     120        fd_log_debug("  %d threads waiting\n", queue->thrs);
     121        fd_log_debug("  thresholds: %d / %d, cb: %p / %p (%p), highest: %d\n",
     122                        queue->high, queue->low,
     123                        queue->h_cb, queue->l_cb, queue->data,
     124                        queue->highest);
     125       
     126        if (dump_item) {
     127                struct fd_list * li;
     128                int i = 0;
     129                for (li = queue->list.next; li != &queue->list; li = li->next) {
     130                        fd_log_debug("  [%i] item %p in fifo %p:\n", i++, li->o, queue);
     131                        (*dump_item)(level, li->o);
     132                }
     133        }
     134        CHECK_POSIX_DO(  pthread_mutex_unlock( &queue->mtx ), /* continue */  );
     135       
     136}
     137
    102138/* Delete a queue. It must be unused. */
    103139int fd_fifo_del ( struct fifo  ** queue )
Note: See TracChangeset for help on using the changeset viewer.