MCPcopy Create free account
hub / github.com/coreutils/coreutils / merge_loop

Function merge_loop

src/sort.c:3800–3821  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3798 null if TFP is standard output. */
3799
3800static void
3801merge_loop (struct merge_node_queue *queue,
3802 size_t total_lines, FILE *tfp, char const *temp_output)
3803{
3804 while (true)
3805 {
3806 struct merge_node *node = queue_pop (queue);
3807
3808 if (node->level == MERGE_END)
3809 {
3810 unlock_node (node);
3811 /* Reinsert so other threads can pop it. */
3812 queue_insert (queue, node);
3813 break;
3814 }
3815 mergelines_node (node, total_lines, tfp, temp_output);
3816 queue_check_insert (queue, node);
3817 queue_check_insert_parent (queue, node);
3818
3819 unlock_node (node);
3820 }
3821}
3822
3823
3824static void sortlines (struct line *restrict, size_t, size_t,

Callers 1

sortlinesFunction · 0.85

Calls 6

queue_popFunction · 0.85
unlock_nodeFunction · 0.85
queue_insertFunction · 0.85
mergelines_nodeFunction · 0.85
queue_check_insertFunction · 0.85

Tested by

no test coverage detected