Esempio n. 1
0
void dline_update()
{
    printf("Select a processor (0-7): ");
    int proc;
    scanf("%d", &proc);
    if (proc >7 || proc <0) 
        printf("Wrong processor!\n");
    else {
        dline_t deadline = ask_deadline();

        if (dl_time_before(deadline, myheap.nodes[proc].deadline)) 
            printf("deadline too short\n");
        else {
            heap_finish(&myheap, proc, deadline);
            heap_print(&myheap);
            if (!heap_check(&myheap)) exit(-1);
        }
    }
}
Esempio n. 2
0
static void test_heap(void)
{
   const size_t nums_size = rand() % 3000 + 1;
   int *nums = malloc(nums_size * sizeof *nums);
   for (size_t i = 0; i < nums_size; i++)
      nums[i] = rand();

   const size_t heap_size = rand() % 1000 + 1;
   int *heap_data = malloc(heap_size * sizeof *nums);
   struct heap heap = VB_HEAP_INIT(heap_data, heap_size);

   for (size_t i = 0; i < nums_size; i++)
      heap_push(&heap, nums[i]);
   heap_finish(&heap);

   qsort(nums, nums_size, sizeof *nums, intpcmp);

   for (size_t i = 0; i < heap.size; i++)
      assert(heap.data[i] == nums[i]);

   free(nums);
   free(heap_data);
}