rem: lock( hash_table->timers[DELETE_LIST].mutex ); remove_delete_list( hash_table ); unlock( hash_table->timers[DELETE_LIST].mutex );
context: void free_hash_table( struct s_table *hash_table ){   struct cell* p_cell;   struct cell* tmp_cell;   int   i;   if (hash_table)   {      /* remove the data contained by each entry */      for( i = 0 ; i<TABLE_ENTRIES; i++)      {         release_entry_lock( (hash_table->entrys)+i );         /* delete all synonyms at hash-collision-slot i */         for( p_cell = hash_table->entrys[i].first_cell; p_cell; p_cell = tmp_cell )         {            tmp_cell = p_cell->next_cell;            free_cell( p_cell );         }      }      /* deletes all cells from DELETE_LIST list (they are no more accessible from enrys) */        lock( hash_table->timers[DELETE_LIST].mutex );        remove_delete_list( hash_table );        unlock( hash_table->timers[DELETE_LIST].mutex );      /*      while( (tl=remove_from_timer_list_from_head( hash_table, DELETE_LIST ))!=0 )         free_cell( p_cell ) ;      */      /* the mutexs for sync the lists are released*/      for ( i=0 ; i<NR_OF_TIMER_LISTS ; i++ )         release_timerlist_lock( &(hash_table->timers[i]) );      sh_free( hash_table );   }}