[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r2331 - GNUnet/src/server
From: |
grothoff |
Subject: |
[GNUnet-SVN] r2331 - GNUnet/src/server |
Date: |
Thu, 15 Dec 2005 23:00:30 -0800 (PST) |
Author: grothoff
Date: 2005-12-15 23:00:28 -0800 (Thu, 15 Dec 2005)
New Revision: 2331
Modified:
GNUnet/src/server/connection.c
Log:
reverting patch, non-null should be an invariant of the code
Modified: GNUnet/src/server/connection.c
===================================================================
--- GNUnet/src/server/connection.c 2005-12-15 20:39:11 UTC (rev 2330)
+++ GNUnet/src/server/connection.c 2005-12-16 07:00:28 UTC (rev 2331)
@@ -640,9 +640,6 @@
max = 0;
for (i=0;i<count;i++) {
- if (!entries[i])
- continue;
-
if (entries[i]->len <= left) {
entries[i]->knapsackSolution = YES;
left -= entries[i]->len;
@@ -693,16 +690,14 @@
/* fast test: schedule everything? */
max = 0;
for (i=0;i<count;i++)
- if (entries[i])
- max += entries[i]->len;
+ max += entries[i]->len;
if (max <= available) {
/* short cut: take everything! */
+ for (i=0;i<count;i++)
+ entries[i]->knapsackSolution = YES;
max = 0;
for (i=0;i<count;i++)
- if (entries[i]) {
- entries[i]->knapsackSolution = YES;
- max += entries[i]->pri;
- }
+ max += entries[i]->pri;
return max;
}
@@ -713,14 +708,13 @@
efflen = MALLOC(sizeof(int)*count);
max = available;
for (i=0;i<count;i++) {
- if (entries && entries[i]->len > 0)
+ if (entries[i]->len > 0)
max = gcd(max, entries[i]->len);
}
GNUNET_ASSERT(max != 0);
available = available / max;
for (i=0;i<count;i++)
- if (entries)
- efflen[i] = entries[i]->len / max;
+ efflen[i] = entries[i]->len / max;
/* dynamic programming:
VARR(i,j) stores the maximum value of any subset
@@ -740,13 +734,13 @@
take_val = -1;
leave_val = VARR(i-1,j);
if (j >= efflen[i-1]) {
- take_val = entries ? entries[i-1]->pri : 0 + VARR(i-1, j-efflen[i-1]);
- if (leave_val > take_val)
- VARR(i,j) = leave_val;
- else
- VARR(i,j) = take_val;
+ take_val = entries[i-1]->pri + VARR(i-1, j-efflen[i-1]);
+ if (leave_val > take_val)
+ VARR(i,j) = leave_val;
+ else
+ VARR(i,j) = take_val;
} else
- VARR(i,j) = leave_val;
+ VARR(i,j) = leave_val;
/*
printf("i: %d j: %d (of %d) efflen: %d take: %d "
"leave %d e[i-1]->pri %d VAR(i-1,j-eff) %lld VAR(i,j) %lld\n",
@@ -774,14 +768,13 @@
}
/* reconstruct selection */
- for(i = 0; i < count; i++)
- if (entries[i])
- entries[i]->knapsackSolution = NO;
- for(i = count; i > 0; i--) {
- if(entries[i] && j >= efflen[i - 1]) {
- if(VARR(i - 1, j - efflen[i - 1]) + entries[i - 1]->pri == VARR(i, j)) {
- j -= efflen[i - 1];
- entries[i - 1]->knapsackSolution = YES;
+ for (i=0;i<count;i++)
+ entries[i]->knapsackSolution = NO;
+ for (i=count;i>0;i--) {
+ if (j >= efflen[i-1]) {
+ if (VARR(i-1, j-efflen[i-1]) + entries[i-1]->pri == VARR(i,j)) {
+ j -= efflen[i-1];
+ entries[i-1]->knapsackSolution = YES;
}
}
}
@@ -905,8 +898,7 @@
(*priority) = 0;
for (i=be->sendBufferSize-1;i>=0;i--)
- if (be->sendBuffer[i])
- be->sendBuffer[i]->knapsackSolution = NO;
+ be->sendBuffer[i]->knapsackSolution = NO;
if(be->session.mtu == 0) {
totalMessageSize = sizeof(P2P_PACKET_HEADER);
@@ -914,10 +906,6 @@
/* assumes entries are sorted by priority! */
while(i < be->sendBufferSize) {
entry = be->sendBuffer[i];
-
- if (!entry)
- continue;
-
if((totalMessageSize + entry->len < MAX_BUFFER_SIZE) &&
(entry->pri >= EXTREME_PRIORITY)) {
entry->knapsackSolution = YES;
@@ -933,17 +921,13 @@
}
i++;
}
- if((i == 0) && (be->sendBuffer[i] && (be->sendBuffer[i]->len >
be->available_send_window)))
+ if((i == 0) && (be->sendBuffer[i]->len > be->available_send_window))
return 0; /* always wait for the highest-priority
message (otherwise large messages may
starve! */
while((i < be->sendBufferSize) &&
(be->available_send_window > totalMessageSize)) {
entry = be->sendBuffer[i];
-
- if (!entry)
- continue;
-
if((entry->len + totalMessageSize <=
be->available_send_window) &&
(totalMessageSize + entry->len < MAX_BUFFER_SIZE)) {
@@ -1011,7 +995,7 @@
}
j = 0;
for(i = 0; i < be->sendBufferSize; i++)
- if(be->sendBuffer[i] && be->sendBuffer[i]->knapsackSolution == YES)
+ if(be->sendBuffer[i]->knapsackSolution == YES)
j++;
if(j == 0) {
LOG(LOG_ERROR,
@@ -1020,10 +1004,9 @@
j, be->sendBufferSize, be->session.mtu - sizeof(P2P_PACKET_HEADER));
for(j = 0; j < be->sendBufferSize; j++)
- if (be->sendBuffer[j])
- LOG(LOG_ERROR,
- _("Message details: %u: length %d, priority: %d\n"),
- j, be->sendBuffer[j]->len, be->sendBuffer[j]->pri);
+ LOG(LOG_ERROR,
+ _("Message details: %u: length %d, priority: %d\n"),
+ j, be->sendBuffer[j]->len, be->sendBuffer[j]->pri);
return 0;
}
@@ -1151,9 +1134,6 @@
for (i=0;i<be->sendBufferSize;i++) {
entry = be->sendBuffer[i];
- if (entry)
- continue;
-
if (entry->knapsackSolution == YES) {
if (entry->callback != NULL) {
tmpMsg = MALLOC(entry->len);
@@ -1293,7 +1273,7 @@
ret = be->sendBufferSize;
while (i < ret) {
entry = entries[i];
- if (entry && entry->len > be->session.mtu -
sizeof(P2P_PACKET_HEADER)) {
+ if (entry->len > be->session.mtu - sizeof(P2P_PACKET_HEADER)) {
ret--;
for (j=i;j<ret;j++)
entries[j] = entries[j+1]; /* preserve ordering */
@@ -1592,8 +1572,7 @@
}
queueSize = 0;
for (i=0;i<be->sendBufferSize;i++)
- if (be->sendBuffer[i])
- queueSize += be->sendBuffer[i]->len;
+ queueSize += be->sendBuffer[i]->len;
if (queueSize >= MAX_SEND_BUFFER_SIZE) {
/* first, try to remedy! */
@@ -1602,8 +1581,7 @@
queueSize = 0;
for (i=0;i<be->sendBufferSize;i++)
- if (be->sendBuffer[i])
- queueSize += be->sendBuffer[i]->len;
+ queueSize += be->sendBuffer[i]->len;
if (queueSize >= MAX_SEND_BUFFER_SIZE) {
/* we need to enforce some hard limit here, otherwise we may take
@@ -1625,7 +1603,6 @@
apri = (float) se->pri / (float) se->len;
i=0;
while ( (i < be->sendBufferSize) &&
- (be->sendBuffer[i]) &&
( ((float)be->sendBuffer[i]->pri /
(float)be->sendBuffer[i]->len) >= apri) ) {
ne[i] = be->sendBuffer[i];
@@ -1859,10 +1836,8 @@
be->session.tsession = NULL;
}
for (i=0;i<be->sendBufferSize;i++) {
- if (be->sendBuffer[i]) {
- FREENONNULL(be->sendBuffer[i]->closure);
- FREE(be->sendBuffer[i]);
- }
+ FREENONNULL(be->sendBuffer[i]->closure);
+ FREE(be->sendBuffer[i]);
}
GROW(be->sendBuffer,
be->sendBufferSize,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r2331 - GNUnet/src/server,
grothoff <=