Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
os:
- linux
- osx
- linux
- osx

language: c
language: c

compiler:
- gcc
- clang
compiler:
- gcc
- clang

script: make
script: make

notifications:
email:
on_success: never
on_failure: always
notifications:
email:
on_success: never
on_failure: always

94 changes: 47 additions & 47 deletions hlist.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,64 +24,64 @@
static int max_hlist_size = 2;

void set_hlist_size(double throughput_wait_secs) {
int new_size;
int new_size;

new_size = ceil(10.0 / throughput_wait_secs);
if (new_size > 1)
max_hlist_size = new_size;
new_size = ceil(10.0 / throughput_wait_secs);
if (new_size > 1)
max_hlist_size = new_size;
}

int add_to_hlist(hlist **begin, hlist **end, int size, int value) {
int ret;
int ret;

if (*begin == NULL) {
if ((*begin = malloc(sizeof(hlist))) == NULL)
return 0;
*end = *begin;
(*begin)->next = NULL;
(*begin)->prev = NULL;
ret = 1;
}
else if (size == max_hlist_size) {
hlist *tmp = (*end)->prev;
tmp->next = NULL;
(*end)->next = *begin;
(*end)->prev = NULL;
*begin = *end;
*end = tmp;
(*begin)->next->prev = *begin;
ret = 0;
}
else {
hlist *new = malloc(sizeof(hlist));
if (!new)
return 0;
new->next = *begin;
new->prev = NULL;
*begin = new;
(*begin)->next->prev = *begin;
ret = 1;
}
(*begin)->value = value;
return ret;
if (*begin == NULL) {
if ((*begin = malloc(sizeof(hlist))) == NULL)
return 0;
*end = *begin;
(*begin)->next = NULL;
(*begin)->prev = NULL;
ret = 1;
}
else if (size == max_hlist_size) {
hlist *tmp = (*end)->prev;
tmp->next = NULL;
(*end)->next = *begin;
(*end)->prev = NULL;
*begin = *end;
*end = tmp;
(*begin)->next->prev = *begin;
ret = 0;
}
else {
hlist *new = malloc(sizeof(hlist));
if (!new)
return 0;
new->next = *begin;
new->prev = NULL;
*begin = new;
(*begin)->next->prev = *begin;
ret = 1;
}
(*begin)->value = value;
return ret;
}

void free_hlist(hlist *begin) {
hlist *tmp = begin;
hlist *tmp = begin;

while (begin) {
tmp = begin->next;
free(begin);
begin = tmp;
}
while (begin) {
tmp = begin->next;
free(begin);
begin = tmp;
}
}

int get_hlist_average(hlist *begin, int size) {
unsigned long long avg = 0;
unsigned long long avg = 0;

while (begin) {
avg += begin->value;
begin = begin->next;
}
return avg / size;
while (begin) {
avg += begin->value;
begin = begin->next;
}
return avg / size;
}
28 changes: 14 additions & 14 deletions hlist.h
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
/*
Copyright (C) 2016 Xfennec, CQFD Corp.
Copyright (C) 2016 Xfennec, CQFD Corp.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef PROGRESS_HLIST_H
#define PROGRESS_HLIST_H

typedef struct hlist {
struct hlist *prev;
struct hlist *next;
int value;
struct hlist *prev;
struct hlist *next;
int value;
} hlist;

void set_hlist_size(double throughput_wait_secs);
Expand Down
Loading